Autor | Zpráva | ||
---|---|---|---|
davef6 Profil |
v reg. výrazu mám toto
$regex_pattern2 = "/<title>(.*)<\/title>/"; mělo by to vypsat celý titulek stránky, ale při výpisu $regex_pattern2 mi to hodí toto /<\/title>/ Neví někdo kde může být chyba? Moderátor Joker: Přepsal jsem titulek na více jednoznačný, název „Problém s regulérním výrazem“ má snad každý druhý dotaz na RV.
|
||
SwimX Profil |
#2 · Zasláno: 15. 3. 2010, 15:09:21
davef6:
ukaž víc kódu, tady asi nebude. a je to regulární výraz |
||
Joker Profil |
#3 · Zasláno: 15. 3. 2010, 15:10:41
davef6:
„při výpisu $regex_pattern2“ = něco jako echo($regex_pattern2) do prohlížeče? Já jen že prohlížeč interpretuje HTML značky ;-) Mmch. zajímavé, že popsaný výsledek vyprodukuje jen Firefox, Opera a IE (alespoň IE8) vyprodukují jen jedno lomítko. |
||
davef6 Profil |
#4 · Zasláno: 15. 3. 2010, 15:17:32
$regex_pattern2 = "/<title>(.*)<\/title>/"; preg_match_all($regex_pattern2,$input,$matches2); echo $regex_pattern2; $jmeno = $matches2[1][0]; echo $jmeno; $regex_pattern2 vypíše již zmíněné /<\/title>/ (ve firefoxu) $jmeno nevypíše nic |
||
Majkl578 Profil |
#5 · Zasláno: 15. 3. 2010, 15:24:41
|
||
Joker Profil |
#6 · Zasláno: 15. 3. 2010, 15:40:56
davef6:
„$regex_pattern2 vypíše již zmíněné /<\/title>/ (ve firefoxu)“ Ano, samozřejmě. Už jsem se snažil napovědět: prohlížeč interpretuje HTML značky. Čili echo $regex_pattern2; do zdrojového kódu stránky vyprodukuje: /<title>(.*)<\/title>/ ...což Firefox zobrazí jako /<\/title>/. Pokud kontrolní výpisy obsahují HTML kód, není moc dobrý nápad je kontrolovat pohledem na zpracovanou stránku v prohlížeči, kód stránky je daleko lepší volba ;-) $matches2[1][0]; Jinak jako kontrolní výpis bych udělal raději celé pole, např.: var_dump($matches) Majkl578: „Obojí je správně.“ Já bych se tedy hádal (byť "regulární" a "regulérní" má stejný význam, nemyslím si, že "regulární výraz" je to samé jako "regulérní výraz"), ale ne v tomhle vlákně. |
||
davef6 Profil |
#7 · Zasláno: 15. 3. 2010, 16:07:11
pro příklad potřebuji získat třeba title odsud http://www.youtube.com/watch?v=1-XvdglSu6c
var_dump($matches2) vypíše null, takže je něco špatně, ale bohužel nemohu přijít na to co |
||
Joker Profil |
#8 · Zasláno: 15. 3. 2010, 17:16:19
davef6:
„je něco špatně, ale bohužel nemohu přijít na to co“ Na té stránce je <title> přes více řádků, takže musíte použít ještě modifikátor "single line" (s). $regex_pattern2 = "/<title>(.*)<\/title>/s"; |
||
Majkl578 Profil |
#9 · Zasláno: 15. 3. 2010, 17:24:54
Joker:
Osobně mi "regulérní výrazy" také připadají podivné, ale neřešme to tady. |
||
Časová prodleva: 14 let
|
0