Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> modyfikacja linijki w pliku
Ma4el
post
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 ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zombie
post
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)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 01:00