Autor | Zpráva | ||
---|---|---|---|
peteo Profil |
prosím o pomoc.
mám kód: <? $dotaz = $_GET["dotaz"]; $stop="konieczaznamu"; $book=Array("a","aaa","aaaa","ae","b","c","cs","ccc","d","dj","dz","dzj","e","eee","f","g","h","ch","i","iii","j","k","l","lj","m","n","nj","o","ooo","oe","p","q","r","rs","s","sz","t","tj","u","uuu","uy","v","w","x","y","yyy","z","zs","!","0-9"); for ($i=0; $i<=1; $i++) { echo $book[i]; $soubor=fopen($book[i], "r"); do{ $text=fgets($soubor); $pos = strpos($text, $dotaz); if ($pos === false) { } else { echo "<hr><h1><span>"; echo $text; } } while ($text<>$stop); fclose($soubor); } ?> ktorý sa správa ako zacyklený (možno skontrolovať na http://lexikon.sk.sweb.cz/new). je v kóde chyba? díky za pomoc. |
||
Alphard Profil |
#2 · Zasláno: 19. 9. 2009, 08:53:18
Je zde několik chyb a je to nepřehledné, ale zacyklené to asi není.
Od řádku 6 používáte místo $i jenom i, to je důvod, proč to nefunguje. Nejkritičtější je tohle while ($text<>$stop);, to bych řešil jinak, jestli na konci souboru chybí požadovaný řádek, skutečně se to zacyklí. Mimochodem, znáte regulární výrazy? |
||
peteo Profil |
#3 · Zasláno: 19. 9. 2009, 11:48:33
Alphard
je možné, že to je neprehľadné. vďaka za odkaz. proste sa učím. bohužiaľ, aj za cenu chýb. |
||
peteo Profil |
#4 · Zasláno: 19. 9. 2009, 22:36:35
„Nejkritičtější je tohle while ($text<>$stop);, to bych řešil jinak, jestli na konci souboru chybí požadovaný řádek, skutečně se to zacyklí. “
nechám si rád poradiť, veď sa php iba učím. |
||
Alphard Profil |
#5 · Zasláno: 19. 9. 2009, 23:11:24
Podívejte se do manuálu, konstrukce s feof() spolehlivě vyřešení čtení do konce souboru.
while (!feof($handle)) { Ale jak již jsem psal, bylo by dobré to celé předělat s využitím regulárů. Podrobnější analýzou by se možná dokonce došlo k tomu, že bude vhodnější použít databázi. |
||
Časová prodleva: 15 let
|
0