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
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
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
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
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.

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: