Mám problém. Na webe mám súbor (napr.: test.dat) a potrebujem zneho vymazať iba určitú čast. Keby mal súbor obsah napr.:
$meno="timbulko";
$mail="timbulko@azet.sk";
|||
$meno="Zorro";
$mail="aaa@bbb.ccc";
|||
$meno="Jano";
$mail="jano@janohouse.pl";
|||
tak ako z neho odstránim jednu časť oddelenú znakmi "|||", aby subor vyzeral nejako takto:
$meno="timbulko";
$mail="timbulko@azet.sk";
|||
$meno="Jano";
$mail="jano@janohouse.pl";
|||
pomocí explode() viz. php.cz nebo interval.cz ..
část souboru? Jedině tak, že si vezmeš obsah upravíš a uložíš.
Zas az taka lama niesom! Ja viem ze pomocou explode to ide, lenze jako?
$data = "
\$meno=\"timbulko\";
\$mail=\"timbulko@azet.sk\";
|||
\$meno=\"Zorro\";
\$mail=\"aaa@bbb.ccc\";
|||
\$meno=\"Jano";
\$mail=\"jano@janohouse.pl\";
|||
";
$vystup = explode ("|||", $data);
?
?
FWrite (?)
....Co mam dat namiesto otaznikov (?)?
pokud máš ve $vystup pole, to upravíš (vyhodíš, co nechceš) a pak, pokud to chceš do souboru v původním stavu, tak to může vypadat třeba takto:
$obsah_souboru = implode('|||', $vysutp); //vystup je pole
fopen($f, $jmeno_souboru, 'w') or die "heh, nemuzu otevrit soubor $jmeno_souboru";
fwrite($f, $obsah_souboru);
fclose($f);
---
taky by se dalo zauvažovat nas ukládáním přímo pole (viz manuál serialize() a unserialize()
jo, sql je v tomto případě vůbec nejlepší...
na toto sa pekne hodi pouzivat xml, a mas po problemoch :)
Já bych použil regulární výrazy a funkci ereg_replace()
asi takto... (netestováno, píšu jen tak z hlavy, možná bude třeba upravit)
------------------------------------
$text=file_get_contents("nazev_souboru");
$text=ereg_replace("|||[^|]jmeno_ktere_chcu_smazat[^|]|||","|||",$text);
file_put_string("nazev_couboru",$text);
------------------------------------
takže tak.... nikdy mi regulární výrazy příliš nešly a musel jsem dlouho ladit, tak nevím, jestli to hned na první pokus pojede :-/