PHP - fwrite zápis na začiatok súboru

Programovacie jazyky, rady, poradňa...
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

PHP - fwrite zápis na začiatok súboru

Príspevok od používateľa weroro »

Ahoj

Už sa pár hodín ničím pri vyriešení problému so zápisom na začiatok už existujúceho súboru.
Používam:

Kód: Vybrať všetko

$str = fopen("subor.txt", "r+");
fwrite($str, "update text\r") 
ale zakaždým to vyzerá takto:
starý text:

Kód: Vybrať všetko

Ahoj ja som weroro
nový text:

Kód: Vybrať všetko

update text\r
a výsledok vyzerá takto:

Kód: Vybrať všetko

update text
weroro
Neviete prosím ako to ošetriť aby mi to zalamovalo celý ten text a nie aby mi to prepísalo znaky a potom to zalomilo?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: PHP - fwrite zápis na začiatok súboru

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

$obsah="update text \n".file_get_contents("soubor.txt);
$fp=fopen("soubor.txt","w");
fwrite($fp,$obsah);
fclose($fp);
a btw: http://www.hojko.com/ukladanie-dat-na-z ... 03769.html
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: PHP - fwrite zápis na začiatok súboru

Príspevok od používateľa weroro »

Audio v ďaka, ale čo vtedy keď má daný súbor TXT napr. 50MB? To ho mám vážne načítať do premennej ?
Ja to teraz robím takto ale chcel som odľahčiť server:

Kód: Vybrať všetko

$PovodnaSprava = file_get_contents($NazovSuboru);
$NovaSprava = "daka sprava\r";
$PridanieSpravy = "$NovaSprava$PovodnaSprava";
file_put_contents($NazovSuboru, $PridanieSpravy); 
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Re: PHP - fwrite zápis na začiatok súboru

Príspevok od používateľa juho »

a jak inak to chces robit? ved ten subor niekde zacina a pridavat znaky na zaciatok sa neda iba ich prepisat mozes
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: PHP - fwrite zápis na začiatok súboru

Príspevok od používateľa audiotrack »

weroro práve preto som ti dal link na tému, kde sa to už riešilo. Iné riešenie síce neexistuje, ale spomínalo sa tam že radšej zapisovať na koniec a pri vypisovaní to vypisovať v opačnom poradí ak chceš odľahčiť server
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: PHP - fwrite zápis na začiatok súboru

Príspevok od používateľa weroro »

Vďaka chalani.

Juho: Chem to urobiť presne, tak ako som písal. Ja nerobím často v PHP, tak som absolútne netušil, že neexistuje žiadna taká funkcia (myslel som , že neviem googliť).

Audiotrack: Ja som si to celé prečítal, ale neuspokojilo ma to práve preto, lebo je potrebné čítať súbor od konca, čo je apropo znovu nutnosť načítať komplet súbor do premennej. Tak isto potrebujem docieliť aby som pri výpise správ mohol určiť koľko znakov (bytov?) sa má z daného súboru načítať (aby som ho nemusel načítavať celý), a práve táto funkcia číta súbor od jeho začiatku a nie od jeho konca.

Ja som si v ActionScripte (air aplikácia, ktorá vie pracovať so súbormi), napísal funkciu, ale nevedel som ju prepísať do PHP, nakoniec som to vyriešil týmto, a funguje to skvele:

Kód: Vybrať všetko

function pridajDoSuboru($cesta, $sprava)
    {
          
      $suborNaZmenu = fopen($cesta, "r+");
      $dlzka = strlen($sprava);
      $maximalnaDlzka = filesize($cesta) + $dlzka;
      $StaraSprava = fread($suborNaZmenu, $dlzka);
      rewind($suborNaZmenu);
      $w = 1;
      while (ftell($suborNaZmenu) < $maximalnaDlzka)
      {
        fwrite($suborNaZmenu, $sprava);
        $sprava = $StaraSprava;
        $StaraSprava = fread($suborNaZmenu, $dlzka);
        fseek($suborNaZmenu, $w * $dlzka);
        $w++;
      }
      
    }
    pridajDoSuboru($NazovSuboru,"nejaká nová správa\r"); 
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Re: PHP - fwrite zápis na začiatok súboru

Príspevok od používateľa juho »

no a toto je asi horsie nez file_get_Contents a file_put_contents
Napísať odpoveď