Autor | Zpráva | ||
---|---|---|---|
typs Profil * |
#1 · Zasláno: 21. 2. 2008, 21:43:29
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 |
#2 · Zasláno: 21. 2. 2008, 22:09:32 · Upravil/a: Mastodont
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] |
||
Časová prodleva: 16 let
|
0