txt auslesen bearbeiten!

GrObY

Mitglied
Hi, ich habe volgendes problem ich lese meine txt datenbank so aus:
PHP:
<?
$datei = fopen("db.txt", "r") ;
while (!feof($datei)) {
$zeile = fgets($datei, 512) ;
$eintrag = explode("|", trim($zeile)) ;
?>
<table cellpadding="0" cellspacing="0" class="oben" width="600" border="0" align="center" bgcolor="#293A4E">
<?php echo $eintrag[0]; ?>
<?php echo $eintrag[1]; ?>
<?php echo $eintrag[2]; ?>
<?php echo $eintrag[3]; ?>
<?php echo $eintrag[4]; ?>
<?php echo $eintrag[5]; ?>
</table>
<?
} 
fclose($datei) ;
?>
was muss ich machen um diese einträge von unten aus der txt auszulesen?
weil es news sind;)

2. prob
ich habe hier im tutorial eine sher schöne sache gesehen und gleich mal eingesetzt um die news zu editieren!
nun habe ich aber auf der php seite die die news schreibt z.b. ein $datei="<font color=\"#000000\">" und beim schreiben schreibt er es ja ohne \ in die txt aber beim editieren macht er diese \ rein und somot ist der ganze text unbrauchbar?
PHP:
<form action=" <? $PHP_SELF; ?>" method ="post"> 
  <textarea name="inhalt" rows=25 cols=55 wrap="virtual"> 
<?
include("db.txt");
?>
</textarea> </br>
  <input name="submit" type="submit" id="submit" value="Abschicken"> 
<input type="reset" name="Submit2" value="Reset"> 
</form> 
<?
if ($submit == "Abschicken")
    {
    $fp = fopen("db.txt","w");
    $data ="$inhalt";
    $data = str_replace("\r","",$data);
    fputs($fp,$data); 
    fclose($fp); 
    echo " $eintrag"; 
    $check_ok = "<font color = 'red'>Ihre Daten wurden erfolgreich geändert!<br>Bitte warten sie bis die Daten aktualisiert werden.</font>"; 
    echo "$check_ok";
        }
?>

thx thx thx für die hilfe
 
Zuletzt bearbeitet von einem Moderator:
1.
PHP:
$eintrag = array_reverse(explode("|", trim($zeile)));
2.<
PHP:
<?
    (...)
    fclose($fp); 
    echo $eintrag; 
    ?>
    <font color="red">Ihre Daten wurden erfolgreich geändert!
    <br>Bitte warten sie bis die Daten aktualisiert werden.</font>
    <?}?>
 
??

thx für die schnelle antwort!!
bei mir klappt beides nicht! eine kleine erklärung wäre nicht schlecht dazu.
Ich habe es so probiert:
PHP:
<?
$datei = fopen("db.txt", "r") ;
while (!feof($datei)) {
$zeile = fgets($datei, 512) ;
$eintrag = array_reverse(explode("|", trim($zeile)));
?>
<table cellpadding="0" cellspacing="0" class="oben" width="600" border="0" align="center" bgcolor="#293A4E">
<?php echo $eintrag[0]; ?>
<?php echo $eintrag[1]; ?>
<?php echo $eintrag[2]; ?>
<?php echo $eintrag[3]; ?>
<?php echo $eintrag[4]; ?>
<?php echo $eintrag[5]; ?>
</table>
<?
} 
fclose($datei) ;
?>

und zum 2. habe ich es so versucht:

PHP:
<form action=" <? $PHP_SELF; ?>" method ="post"> 

  <textarea name="inhalt" rows=25 cols=55 wrap="virtual"> 
<?
include("db.txt");
?>
</textarea> </br>
  <input name="submit" type="submit" id="submit" value="Abschicken"> 
<input type="reset" name="Submit2" value="Reset"> 
</form> 

<?
if ($submit == "Abschicken")
    {
    $fp = fopen("db.txt","w");
    $data ="$inhalt";
    $data = str_replace("\r","",$data);
    fputs($fp,$data); 
    fclose($fp); 
echo $eintrag; 
?> 
<font color="red">Ihre Daten wurden erfolgreich geändert! 
<br>Bitte warten sie bis die Daten aktualisiert werden.</font>    

<?
}
?>

was habe ich falsch gemacht und wo setze ich es richtig ein?

Benutz bitte die PHP Tags um deinen Code darzustellen. Danke! Caminus
 
Zuletzt bearbeitet von einem Moderator:
Zu 1.:
Machs so:
PHP:
<?
$datei = file("db.txt");
$datei = array_reverse($datei);
for ($i=0; $i<count($datei); $i++) {
    $eintrag = explode("|", trim($datei[$i])); 
    ?> 
    <table cellpadding="0" cellspacing="0" class="oben" ...> 
     <?php echo $eintrag[0]; ?>
     <?php echo $eintrag[1]; ?> 
     <?php echo $eintrag[2]; ?> 
     <?php echo $eintrag[3]; ?> 
     <?php echo $eintrag[4]; ?> 
     <?php echo $eintrag[5]; ?> 
     </table> 
     <? 
}
Erklärung: Die Funktion file(); Liest eine Datei Zeile für Zeile in ein Array, wobei jede Zeile einem Array-Eintrag entspricht!

Der Rest erklärt sich ja von selbst!


Zum 2.:
PHP:
if ($submit == "Abschicken") 
{ 
$fp = fopen("db.txt","w"); 
$data ="$inhalt"; // <------ Was soll das?
$data = str_replace("\r","",$data); 

$data = strip_splashes($data);  // <------ Da is die Änderung!

...
}
 
Zuletzt bearbeitet von einem Moderator:
Thx das mit den news klappt 1000x thx!
Und ja ich werde php jetzt mit dieser funktion hier reinschreiben!
weiter zum anderen problem 2.
PHP:
Fatal error: Call to undefined function: strip_splashes() in

soll ich das so machen?

PHP:
<?
if ($submit == "Abschicken")
    {
    $fp = fopen("db.txt","w");
    $data = str_replace("\r","",$data);
    $data = strip_splashes($data); 
    fputs($fp,$data); 
    fclose($fp); 
    echo $eintrag; 
?> 
<font color="red">Ihre Daten wurden erfolgreich geändert! 
<br>Bitte warten sie bis die Daten aktualisiert werden.</font>    

<?
}
?>
 
Was genau fonzt net? Sind immer noch Backslashes da?

<edit>Etz weis ichs: Das was soll das? bezog sich nicht auf die existenz der Zeile, sondern auf die Anführungszeichen! Also mach die Zeile wieder rein (abba ohne Anführungszeichen), dann müssts klappen</edit>
 
Zuletzt bearbeitet von einem Moderator:
Zurück