hallo leute,
einige unter euch werden bestimmt lachen, aber für mich als anfäger ist das eine recht problematische sache!
ich habe ein script gebastelt, welches daten aus einer ASCII-Datenbank einliest, in ein multidimensionales array liest sortiert und eigentlich auch wieder ausgeben sollte! Ach ja und es soll eine bestimmte zeile gelöscht werden!
hier mal das script-->>
die zeilen nummer ($num) bekommt es aus einer flashdatei und die is eigentlich auch richtig! mein problem liegt -glaube ich zumindest- beim schreiben der neuen daten!
vor dem schreiben steht folgende in der datei:
20060202°°02.02.2006°°aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa°°aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a°°\n
nur mal als beispiel -->> es sind mehrere zeilen, der selben art drin!
nach dem schreiben ist nur noch die erste zeile da! bzw der rest sieht so aus:
°°°°°°\n
ich weis zwar schon, dass dies meine trennzeichen sind! aber warum sind dazwichen keine infos mehr!
kann mir bitte mal jemand auf die sprünge helfen!!!!
ich glaub mittlerweile echt schon, dass ich zu blöd bin!
vielen dank schonmal im voraus!
liebe grüße
sebastian
einige unter euch werden bestimmt lachen, aber für mich als anfäger ist das eine recht problematische sache!
ich habe ein script gebastelt, welches daten aus einer ASCII-Datenbank einliest, in ein multidimensionales array liest sortiert und eigentlich auch wieder ausgeben sollte! Ach ja und es soll eine bestimmte zeile gelöscht werden!
hier mal das script-->>
PHP-Code:
$num = $HTTP_POST_VARS['num'];
$datei = "../../data/nws.dat";
$inhalt = file($datei);
$anzahl = count($inhalt);
for ($i =0;$i < $anzahl;$i++) {
$eintrag = explode("°°",$inhalt[$i]);
$val["db_key"][$i]=$eintrag[0];
$val["db_datum"][$i]=$eintrag[1];
$val["db_title"][$i]=$eintrag[2];
$val["db_entry"][$i]=$eintrag[3];
$val["db_lnk"][$i]=$eintrag[4];
}
//ARRAY NACH KEY SORTIEREN
array_multisort($val["db_key"],SORT_REGULAR,SORT_DESC,$val["db_datum"],$val["db_title"],$val["db_entry"],$val["db_lnk"]);
//löschen
unset($val["db_key"][$num]);
unset($val["db_datum"][$num]);
unset($val["db_title"][$num]);
unset($val["db_entry"][$num]);
unset($val["db_lnk"][$num]);
//datei löschen
unlink ($datei);
//neuen Inhalt nach löschen zählen
$newanzahl = count($val["db_key"]);
//Daten aus Array in strings schreiben
for ($i=0;$i<$newanzahl;$i++) {
$string[$i] = $val["db_key"][$i]."°°".$val["db_datum"][$i]."°°".$val["db_title"][$i]."°°".$val["db_entry"][$i]."°°".$val["db_lnk"][$i]."\n";
}
//Strings in neue Datei schreiben
$fp = fopen($datei, "w+");
for ($i=0;$i<$newanzahl; $i++) {
fwrite($fp, "$string[$i]");
}
echo ("&best=ok&");
vor dem schreiben steht folgende in der datei:
20060202°°02.02.2006°°aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa°°aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a°°\n
nur mal als beispiel -->> es sind mehrere zeilen, der selben art drin!
nach dem schreiben ist nur noch die erste zeile da! bzw der rest sieht so aus:
°°°°°°\n
ich weis zwar schon, dass dies meine trennzeichen sind! aber warum sind dazwichen keine infos mehr!
kann mir bitte mal jemand auf die sprünge helfen!!!!
ich glaub mittlerweile echt schon, dass ich zu blöd bin!
vielen dank schonmal im voraus!
liebe grüße
sebastian
Kommentar