Autor | Zpráva | ||
---|---|---|---|
Rypi Profil |
Ahoj,
potřebuju poradit jak upravit tento script, aby jeho výstup byl [0] => <b>tucny</b> [1]=> <b>kysely</b> ted je výstup: [0] => <b>tucny</b> a <b>kysely</b> [1] => tucny</b> a <b>kysely <?php $html = "já jsem <b>tucny</b> a <b>kysely</b>"; preg_match("/<b>(.*)<\/b>/i", $html, $match); print_r($match); ?> Díky moc :) Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
|
||
Majkl578 Profil |
#2 · Zasláno: 11. 2. 2010, 17:37:11 · Upravil/a: Majkl578
$html = 'já jsem <b>tucny</b> a <b>kysely</b>'; preg_match_all('~<b>.*</b>~Ui', $html, $matches); var_dump($matches); |
||
Yur4Y Profil |
#3 · Zasláno: 11. 2. 2010, 17:42:52 · Upravil/a: Yur4Y
Myslím, že stačí použiť (.*?) miesto (.*). Riešenie s modifikátorom U je tiež správne, len pozor, aby sa to potom nebilo, keď budete používať zložitejšie regexpy.
|
||
Rypi Profil |
#4 · Zasláno: 11. 2. 2010, 17:47:23 · Upravil/a: Rypi
díky, ale ten kód vrátí dvakrát první nález, a druhý už nehledá...:
[0] => <b>tucny</b> [1] => <b>tucny</b> |
||
Majkl578 Profil |
#5 · Zasláno: 11. 2. 2010, 18:04:05 · Upravil/a: Majkl578
Yur4Y:
Osobně používám častěji vlastnost ungreedy, takže raději použiji U. Ale každý ať používá co se mu líbí, to je jako s delimitery, já rád vlnovku, někdo lomítko. Rypi: Ve všem spěchu jsem zapomněl změnit funkci na preg_match_all. Opraveno. |
||
Rypi Profil |
#6 · Zasláno: 11. 2. 2010, 18:11:13
Díky, zkoušel jsem to, ale asi jsem použil můj reg. výraz, takže mi to nešlo. Teď už je to OK.
Ještě jedna věc. Vypíše mi to všechny nálezy 3x, potřetí už bez <b> a </b> značek. je jiná možnost, než: print_r($match[0]); jinak pokud víte nějakou příručku pro regulární výrazy, bylo by to fajn. Na regularnivyrazy.info toho je dost, ale takovéhle věci se tam (nejspíše) nedozvím. |
||
Majkl578 Profil |
#7 · Zasláno: 11. 2. 2010, 18:17:27
Rypi:
U mě je výstup scriptu z [#2] toto: array 0 => array 0 => string '<b>tucny</b>' (length=12) 1 => string '<b>kysely</b>' (length=13) „Vypíše mi to všechny nálezy 3x, potřetí už bez <b> a </b> značek.“ Nemáš ve výrazu nějaké obyčejné závorky, které by něco zachycovaly? „jinak pokud víte nějakou příručku pro regulární výrazy, bylo by to fajn“ Já chodil na tebou zmíněnou stránku a na www.regular-expressions.info/. Teď chodím už jen do manuálu PCRE, sekce PCRE Patterns. |
||
Rypi Profil |
#8 · Zasláno: 11. 2. 2010, 18:23:17
Jo, už to jede dobře. Závorky tam byly, ale přísahám, že si je taky psal :D
Díky moc za rychlou pomoc ;) |
||
Majkl578 Profil |
#9 · Zasláno: 11. 2. 2010, 18:37:51 · Upravil/a: Majkl578
[#8] Rypi
Prvně ano, podruhé když jsem měnil funkci jsem je smazal, neměly význam, protože výsledný obsah byl stejný. Tahle funkce běžně vrací v jednom poli část řetězce, ve kterém se hledá a v druhém poli nalezené hodnoty. |
||
Časová prodleva: 15 let
|
0