Autor Zpráva
Toman
Profil *
Existuje nějaký jednoduchý příkaz na smazání řádku v nějakém souboru.
Potřeboval bych to aplikovat do knihy hostů - při každém vložení zprávy vymazat třeba třicátý řádek.
DoubleThink
Profil *
Příkaz na to není, ale můžeš načíst soubor, rozdělit ho do pole podle konců řádků (\n nebo \r\n), pak libovolné řádky smazat, opět složit dohromady a zapsat.
nightfish
Profil
načíst soubor do pole, odstranit z pole záznam, který potřebuješ a zapsat toto pole do souboru... (+ ideálně implementovat zamykání souboru, aby 2 současně probíhající operace v tom neudělaly moc nepořádek)

a nebo přesunout do databáze

EDIT: pozdě
links
Profil *

if($_POST['submit']=='remove'||$_POST['submit']=='restore')
{
if($_POST['submit']=='remove'&&!empty($_POST['multiple_records']))
{
$records_array=file($data_file);
foreach($_POST['multiple_records'] as $key=>$value)
{
unset($records_array_reversed[$value]);
}
}

if($_POST['submit']=='restore'){$records_array=file($data_file.'.bak' );}

if(filesize($data_file)!="0"){copy($data_file,$data_file.'.bak');}
if(($fp=@fopen($data_file,'r+b'))==false){echo'Creation failed. No space left on the device or insufficient privileges?'."\n";}
else
{
if(flock($fp,LOCK_EX))
{
ftruncate($fp,0);
foreach($records_array as $key=>$record)
{
fwrite($fp,$record);
}
flock($fp,LOCK_UN);
}
fclose($fp);
}
}
links
Profil *
v riadku "8" je chyba
spravne ma byt:

unset($records_array[$value]);
Toto téma je uzamčeno. Odpověď nelze zaslat.

0