Autor Zpráva
Petr789
Profil *
Zdravím,
nevíte co je špatně na tomto kousku kódu?
  $soubor = fopen("cislo.php", "w+");
  $num = fread($soubor, 8);
  $num = $num + 1;
  fwrite($soubor, $text);
  fclose($soubor);


Jde o to, že soubor cislo.php obsahuje nějaké číslo (dejme tomu 5) a já bych chtěl, aby se po provedení tohoto scriptu k tomu číslu přičetlo +1 a soubor se uložil, tedy aby tam bylo po provedení scriptu číslo 6.

Bohužel mi to nefunguje - po provedení se smaže počáteční číslo a je nahrazeno 1.
Mám dojem že je problém s tou proměnnou, teda že se číslo 1 nepřičítá k číslu z proměnné, ale k té proměnné (tedy ne k jejímu obsahu). Ale nevím jak to vyřešil :)

Díky
Petr789
Profil *
Pardon, kód mám takto, omylem jsem v prvním příspěvku odeslal starou verzi :)

  $soubor = fopen("cislo.php", "w+");
  $num = fread($soubor, 8);
  $num = $num + 1;
  fwrite($soubor, $num);
  fclose($soubor);
Tori
Profil
Místo w+ to otevírejte s parametrem r+. w+ otevře soubor a zkrátí na 0 bytů, takže pak funkcí fread není co číst.
Nebo můžete použít file_get_contents + file_put_contents.
dan55
Profil
w+ původní data přemaže, pokud se nemýlím?
Zkus spíš toto, je to jednodušší...
$now=file_get_contents("cislo.php");
$now=intval($now)+1;
file_put_contents("cislo.php",$now);

PS: dalo by se to zkrátit na jeden řádek, ale ať to je přehledné.
Jan Knížek
Profil
Opravdu čteš ze správného souboru? Zkus na třetí řádku dát kód:
echo($num);

pardon za opozdilou reakci, měl jsem načtenou stránku moc dlouho :(
Petr789
Profil *
Právě r+ sem zkoušel, jenže výsledek byl ten, že to místo sečtení čísel (tedy výsledku 6) jen přidalo nové číslo za to stávající - výsledek byl teda 56 :)

Ale udělal jsem to přes file_get_contents a file_put_contents a funguje to.
Díky moc.

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:

0