Autor Zpráva
JAAkub
Profil
Zdar, chcem sa spytat,
pouzivam funkciu FWrite(), FOpen....... na zapisanie udaju do suboru.
Len by som potreboval aby mi text nepripisalo ale uplne zmenilo.

To znamena napr.
V subore by som mal Ahoj
a cez funkciu by mi to text zmenilo na Babka
:D
Dakujem ::D
Alphard
Profil
Otevřete ten soubor s parametrem "w", teď tam máte "a", ne?
JAAkub
Profil
Dik mal som tam

"r" a "w" - tam bola chyba :D

teraz mam len "w"
JAAkub
Profil
Vsetko funguje ale zacalo mi tu teraz pisat :

Warning: fread(): supplied argument is not a valid stream resource in /home/free/yw.sk/r/rc/root/www/page_edit_uvod.php on line 49
Alphard
Profil
JAAkub:
W (write) jak název napovídá otevírá soubor pro psaní, takže ho nelze číst. Zkuste "w+".
JAAkub
Profil
Alphard:

Nejde mi to :( moj script :

if (File_Exists ("uvod.data")){ 
$data = FRead ($fp, FileSize("uvod.data"));  
$fp = FOpen ("uvod.data", "w+"); 
FWrite ($fp, $write.$data); 
FClose ($fp);
}
Alphard
Profil
Možná kdybyste upravil pořadí, abyste soubor prvně otevřel a až pak ho četl, šlo by to líp :-)
JAAkub
Profil
Alphard:

Dal som :

if (File_Exists ("uvod.data")){   
$fp = FOpen ("uvod.data", "w+"); 
$data = FRead ($fp, FileSize("uvod.data"));
FWrite ($fp, $write.$data); 
FClose ($fp);
}


a pise mi :
Warning: fread() [function.fread]: Length parameter must be greater than 0 in /home/free/yw.sk/r/rc/root/www/page_edit_uvod.php on line 50.

//edit: Myslim ze chyba bude niekde v
$data = FRead ($fp, FileSize("uvod.data"));
lebo predtym bolo - on line 49
keeehi
Profil
JAAkub:
Proč chceš vlastně data číst, když tam už žádná nejsou. Když něco otvíráš funkcí fopen s druhým parametrem w+, tak se původní obsah smaže -> žádná data -> 0 délka vrácená funkcí filesize -> chyba funkce fread.

ještě překlad chybové hlášky:
Length parameter must be greater than 0.
Parametr délky (druhý parametr) musí být větší než 0.
Alphard
Profil
Soubor je asi ihned vymazán. Už si moc nevzpománím na tuto konstrukci, PHP 4 je pryč a nyní (PHP 5) bych napsal
$file = "uvod.data";
file_put_contents($file, $write.file_get_contents($file));
JAAkub
Profil
keeehi:

Tak FRead mam dat prec ????
keeehi
Profil
JAAkub:
No ano. Je tam úplně zbytečný. Když se funkce fread snaží přečíst ten soubor, tak už je dávno prázdný. Pokud by jsi však chtěl Nejdříve z něj data získat, a pak ho přepsat, musel by jsi to udělat jinak.

if (File_Exists ("uvod.data")){   
$fp = FOpen ("uvod.data", "r+"); 
$data = FRead ($fp, FileSize("uvod.data"));
ftruncate ($fp,0);
rewind ($fp);
FWrite ($fp, $write.$data); 
FClose ($fp);
}
JAAkub
Profil
keeehi:

DIKKK :D IDE TOOOOOO
JAAkub
Profil
keeehi:
To mam pouzit pre otvorenie ??
keeehi
Profil
JAAkub:
Podle toho, co potřebuješ udělat. Pokud chceš jenom soubor přepsat a na datech uvnitř už ti nezáleží použiješ toto:
if (File_Exists ("uvod.data")){   
$fp = FOpen ("uvod.data", "w+"); 
FWrite ($fp, $write); 
FClose ($fp);
}

Když ale chceš ještě před nahrazením souboru dostat jeho obsah do proměnné, použiješ to, co jsem napsal v příspěvku [#12]. Obsah souboru jak vypadal ještě před nahrazením je v proměnné $data.
JAAkub
Profil
keeehi:
A ako by som to mal pouzit pre otvorenie a nacitanie ?? Teraz mam script:
<?
if (File_Exists ("uvod.data")){ 
$fp = FOpen ("uvod.data", "r"); 
FPassThru($fp); 
}
else echo "<p align=\"center\">Ľutujeme, nastala chyba servera</p>";
?>

Moze byt ???
keeehi
Profil
Třeba tento:
if (File_Exists ("uvod.data")){   
$fp = FOpen ("uvod.data", "r"); 
$data = FRead ($fp, FileSize("uvod.data"));
FClose ($fp);
}

Nebo třeba tento:
$data = file_get_contents("uvod.data");

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: