![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 7.06.2002 Ostrzeżenie: (0%) ![]() ![]() |
problem taki:
w pliku dane sa tak zapisywane: nr||nazwa||rodzaj||ile||autor||nr2 i zrobilem skrypt do modyfikacji tego wpisu , teorytycznie wg. mnie jest dobry tylko cos nie dziala o to skrypt: <? $dane="$id||$nazwa||$rodzaj||$cd||$autor||2||n"; $dfile="gry/gry.db"; } $file = file($dfile); $total = count($file); for($i=0; $total > $i; $i++){ $split = explode("||", $file[$i]); if($split[0] == "$id"){ $przed = "$split[0]||$split[1]||$split[2]||$split[3]||$split[4]||$split[5]||n"; $po = "$dane"; $fp = fopen($dfile, "r"); flock($fp,1); $zaw = fread($fp, filesize($dfile)); fclose($fp); $po = str_replace("$przed","$po", $zaw); $fp = fopen($dfile, "w"); flock($fp,2); fwrite($fp, $po); fclose($fp); echo"<center>Zmiany zostały zapisane"; } ?> moze wiecie jak mi pomoc (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) lub znacie jakis inny sposob na modyfikowanie danej linijki ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 296 Pomógł: 0 Dołączył: 9.05.2002 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
CZ! Najprosciej bedzie zrobic kazda linijke w osobnym pliku, ale skoro sie upierasz...
Kod //linia danych: $id | $nazwa | $costam1 | $costam2 |
$plik = fopen("dane.db", "r"); $nr=0; while (!feof($plik)) { $linia[$nr] = fgets($plik, 4096); $nr++; } fclose($plik); // teraz cały plik mamy w tablicach. zmieniamy wpis o $id = 014 for ($i=0; $i<=$nr: $i++) { if($linia[$i]{0}.$linia[$i]{1}.$linia[$i]{2} == "014"){$ch_ln=$i;} } // znaleźliśmy linię, którą chcemy zmienić $tab = explode(" | ", $linia[$ch_ln]); $linia[$ch_ln]= $tab[0]." | ".$tab[1]." | "."dupa | ".$tab[3]." | "; // nie znam innej metody czyszczenia pliku: $plik = fopen("dane.db", "w"); fclose($plik); // zapisujemy zmieniona tablice $plik = fopen("dane.db", "a"); for ($i=0; $i<=$nr: $i++) { fputs($plik, $linia[$i]."n"); } fclose($plik); Chyba nic nie popieprzylem?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 01:00 |