Autor | Zpráva | ||
---|---|---|---|
kozusnik.jan Profil * |
#1 · Zasláno: 4. 6. 2010, 20:19:09
Ahoj. Potřeboval bych poradit se zápisem do souboru. Pořád se mi to zapisuje až nakonec, i když nastavím
rewind($fp); Tady přikládám zdroják: <?php $fp = fopen("zapisy.txt", "a+") or die ("NELZE OTEVRÍT ZADANÝ SOUBOR!"); rewind($fp); if($ok) { $tab = "<tr><td width=\"300\" >".$jmeno."</td> <td align=\"right\">".Date(" d/m/Y H:i:s")."</td> </tr><tr><td colspan=\"2\">".$vzkaz."</td> </tr><tr><td width=\"150\">".$mail."</td> </tr><tr><td colspan=\"2\"><hr size=\"1\"></td> </tr> "; fwrite($fp, $tab); fclose($fp); } $fp2 = fopen("zapisy.txt", "a+") or die ("NELZE OTEVRÍT ZADANÝ SOUBOR!"); rewind($fp2); $vypis = fread($fp2,filesize("zapisy.txt")); fclose($fp2); echo ($vypis); ?> |
||
Beavis Profil |
#2 · Zasláno: 4. 6. 2010, 20:53:18
kozusnik.jan:
Myslím, že je problém v fopen("zapisy.txt", "a+") |
||
kozusnik.jan Profil * |
#3 · Zasláno: 4. 6. 2010, 21:03:18
no jo, ale ten soubor, do kterého zapisuju příspěvky po odeslání smaže :-(
|
||
Laman Profil |
#4 · Zasláno: 4. 6. 2010, 21:11:37
jedna možnost by byla nechat zapisovat na konec a pak při vypisování příspěvky nějak přehazovat (třeba pomocí file()), nebo musíš soubor načíst (třeba file_get_contents()), připojit jeho obsah k novému příspěvku a celé to pak tím módem w zapsat znovu
|
||
kozusnik.jan Profil * |
#5 · Zasláno: 4. 6. 2010, 21:21:35
to jsem nepochopil, ale dík :-)
|
||
Laman Profil |
#6 · Zasláno: 4. 6. 2010, 22:41:13
jde o to, že pokud je mi známo, psát na začátek souboru normálně nejde. takže máš dvě možnosti: 1. smířit se s tím, zapisovat na konec souboru a nějakým způsobem ty zprávy zpracovávat a přeházet při vypisování (třeba kdyby byla jedna zpráva na řádek, tak pomocí file() načteš celý soubor do pole a můžeš pak zprávy vypisovat od konce). 2. vzít novou zprávu, načíst celý obsah souboru, spojit je a celé to znovu zapsat tím zapisovacím módem "w" (místo "a")
příklad k postupu číslo 2: $stareZpravy=file_get_contents("zapisy.txt"); //načteš staré zprávy $fp = fopen("zapisy.txt", "w"); //původní soubor zahodíš $tab=$tab.$stareZpravy; //přidáš staré zprávy na konec fwrite($fp,$tab); //celé zapíšeš _ale_ řekl bych, že první způsob je lepší |
||
AM_ Profil |
#7 · Zasláno: 4. 6. 2010, 23:37:32
Mnohem elegantněji se to řeší přes databázi, tohle má jednu vadu na kráse - až budeš mít 100 tisíc příspěvků, server se pořádně zapotí, než přidá nový. A naučit se mysql na té úrovni, abys zvládl tohle, trvá tak jedno odpoledne ;)
|
||
kozusnik.jan Profil * |
#8 · Zasláno: 5. 6. 2010, 09:29:10
no, ja to s databází trochu umím, tak by to nemusel být problém
|
||
Časová prodleva: 14 let
|
0