Autor Zpráva
Skat
Profil *
$news = "./data/news.txt";
$linkaa= "$novinka";

    $ccc = fopen ($news, "a");
    fwrite ($ccc, $linkaa);
    fclose ($ccc);
Jak mám udělat, aby to zapisovalo na začátek souboru a ne na konec?
juriad
Profil
Když si rozmyslíš, jak funguje uložení souborů na disku, tak příjdeš na to, že je možné něco připsat na konec, ale určitě ne na začátek.
Jedinou možností je přečíst soubor a zapsat ho znovu s těmi několika řádkami na začátku.
Občas ti nevadí zapisovat na konec, protože existuje funkce fseek.

Mimochodem, zkusil jsi hledat na zdejší diskusi?
Skat
Profil *
Jo hledal a našel jsem opačný problém...
Nešlo by teda vypsat ten soubor od konce? (ne znaky, ale řádky)
Joker
Profil
Skat:
Jinak zápis na začátek souboru se dělá tak, že se celý soubor načte, smaže se jeho obsah, pak se tam zapíše nový obsah a potom zase ten původní.

Vypsat soubor od konce samozřejmě také jde, načíst ho celý po řádcích do pole a to pak vypsat od posledního prvku.
Keeehi
Profil
Skat:
Vypsat soubor obráceně po řádcích není nic složitého
$lines = file('./data/news.txt');             // Toto načte soubor do pole po řádcích
for ( $i = count($lines) ; $i > 0 ; --$i ) {  // projití pole od konce
    echo $lines[$i-1]."<br />\n";             // vypsání řádků
}
Skat
Profil *
Keeehi:
Zkouším to, ale pořád je to stejně, nepatří k tomu ještě něco, třeba deklarace pole?
Alphard
Profil
Vypadá to kompletně. Vypisuje vám to nějaké chyby? Co to dělá? Zamyslete se, jestli byste z podobného popisu problému sám něco (v jiném oboru) odhadl.
Skat
Profil *
Chyby to nevypisuje, řádky se pořád zobrazují tak, jak jsou v textovém souboru...
Alphard
Profil
Pak jedině zjistit, jestli funkce file() dokáže správně identifikovat řádek a případně ji nahradit pomocí explode() nebo preg_split().

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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