Autor Zpráva
Měsíček
Profil
Jak mám v PHP napsat skript, který přepíše v souboru "xxxx.xxx" jen určitý řádek a také čte jen určitý řádek ?Děkuji za odpovědi ... :-)
Joker
Profil
Načtení n-tého řádku: přečíst a zahodit n-1 řádků a potom přečíst ten "zajímavý".
Přepsání řádku: načíst celý soubor, změnit ten řádek, přepsat celý soubor.
Měsíček
Profil
moc složitý :D
Měsíček
Profil
Vážně na to není nějáká funkce která přepisuje jen určitý řádek ?
Měsíček
Profil
Třeba když toto vyčte celý soubor : <?php

$fcontents = file ('a.php');
while (list ($line_num, $line) = each ($fcontents)) {
echo "<b>Linka $line_num:</b> " . htmlspecialchars ($line) . "<br> ";
}

$fcontents = join ('', file ('a.php'));
?>

Tak takhle to potřebuji, ale potřebuji změnit určitou linku ....
daop
Profil *
Měsíček mohuzel to je soubor, stim nic neudelas. Jedina moznost je nacist cely soubor najednou a tam zmenit pozadovana data, a posleze zapsat cely soubor. Nebo se obratit na doktora database, ten je pro tyto pozadavky jak stvoreny.....:).
nightfish
Profil
k čemu to chceš použít netuším, ale šlo by to napsat takhle (netestováno, a vyžaduje PHP5 kvůli file_put_contents):

<?php

$cisloMeneneRadky = 20;
$novyObsahRadku = "novyobsah";
$pocitadlo = 1;
$obsah = file("soubor.txt");
foreach ($obsah as $v) {
if ($pocitadlo == $cisloMeneneRadky) $obsah[$pocitadlo] = $novyObsahRadku;
$pocitadlo++;
}
$obsah = implode("", $obsah);
file_put_contents("soubor.txt", $obsah);
?>
krteczek
Profil
pokud s tím chceš jednoduše pracovat, asi nejlepší bude když z toho uděláš array kterou při uložení serializuješ a při načtení unserializuješ (převedeš jednotlivé položky array na text a zpět), má to tu nevýhodu, že soubor nelze jednoduše editovat jen pomocí editoru, musíš ho editovat scriptem.

//získání pole:
function ziskejArray()
{
$file = dirname(__FILE__) . '/cesta/soubor.php';
return unserialize(file_get_contents($file));
}

//uložení pole:
function ulozArray()
{
$file = dirname(__FILE__) . '/cesta/soubor.php';
file_put_contents($file, serialize($array));
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: