Autor Zpráva
typs
Profil *
Tento script jsem našel na http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=69 042

<?php
$text = '<li>aaa</li><li>bbb</li><li >ccc</li><li>ddd</li><li>eee</li>'; //nactes html kod
$reg = '/<li>(.*)<\/li>/'; // reknes co chces hledat
preg_match_all($reg, $text, $chars);
for($i=0;$i<count($chars[0]);$i++) {echo $chars[0][$i]."<br> ";}
?>


Tento script mi vypíše :

<li>aaa</li><li>bbb</li><li >ccc</li><li>ddd</li><li>eee</li><br> 


To je samozřejmě správně, ale pokud bych jednotlivé vysledky chtěl zobrazit zvlášť nebo převést do jiné proměné tak to nefunguje.

Pokud bych tedy chtěl zobrazit druhý vysledek hledání tak pak bych ho jednoduše vybral echo $chars[0][1]; a to by mělo vypsat <li>bbb</li>

Takže celý script by pak vypadal takto :

<?php
$text = '<li>aaa</li><li>bbb</li><li >ccc</li><li>ddd</li><li>eee</li>'; //nactes html kod
$reg = '/<li>(.*)<\/li>/'; // reknes co chces hledat
preg_match_all($reg, $text, $chars);
for($i=0;$i<count($chars[0]);$i++) {echo $chars[0][$i]."<br> ";}
echo $chars[0][1];
?>


Jenže mi to vypíše chybovou hlášku :
Notice: Undefined offset: 1 in C:\ComplexWebServer\http_docs\zkouska\index-3.php on line 6


V čem může být problém?
Mastodont
Profil
V tom regulárním výrazu, je hladovej.
$reg = '/<li>(.*)<\/li>/U';

Ten příklad je blbě, protože regulár bez /U zachytí celý řetězec a $chars[0] pak obsahuje jen jeden prvek, čili $chars[0][0]

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: