Autor | Zpráva | ||
---|---|---|---|
oto313 Profil |
#1 · Zasláno: 10. 8. 2011, 15:48:32 · Upravil/a: oto313
Dobrý den potřeboval bych, pomocí funkce preg _match_all, dostat adresy a text jen z divu "neco" s nadpisem "<h1>nadpis:</h1>". V regulárních výrazech jsem začátečník.
<h1>nadpis:</h1> <div class="neco"> <a href="adresa1">text1</a>, <a href="adresa2">text2</a>, <a href="adresa2¨3">text3</a></div> Děkuji za každou radu |
||
Tori Profil |
#2 · Zasláno: 10. 8. 2011, 20:02:54
Nemůžu to teď vyzkoušet, ale snad to bude fungovat. Zkontrolujte přesnou podobu html zdroje, kde všude před tím divem můžou být navíc nějaké mezery a zalomení řádku. "Nula a více bílých znaků" se píše \s*?
preg_match_all('~<h1>nadpis\:</h1>\s*?<div class="neco">(.+?)</div>~is', $html, $m); print_r($m); |
||
oto313 Profil |
#3 · Zasláno: 10. 8. 2011, 20:41:27
nojo jenže já bych potřeboval, aby jen ciste adresu a odkaz bez tagu ... a ještě nevim jak s tema čárkama, ty odkazy jsou odděleny ", "
|
||
oto313 Profil |
#4 · Zasláno: 10. 8. 2011, 20:44:21
přesné znění:
<h4>Hrají:</h4> <span data-truncate="280"> <a href="adresa">odkaz</a>, <a href="adresa">odkaz</a>, <a href="adresa">odkaz</a>, <a href="adresa">odkaz</a>, <a href="adresa">odkaz</a>, <a href="adresa">odkaz</a>, <a href="adresa">odkaz</a>, <a href="adresa">odkaz</a>, <a href="adresa">odkaz</a>, <a href="adresa">odkaz</a>, <a href="adresa">odkaz</a>, </span> |
||
Ofi Profil |
#5 · Zasláno: 10. 8. 2011, 22:10:15 · Upravil/a: Ofi
takto by měl ten regex fungovat. v proměnné kam si naplníš shody by měly ty odkazy(obsahy href) být pod indexem 2.
<h1>nadpis\:<\/h1>\s*<div class=\"neco\">\s*(<a href=\"([^\"]+)\">[^<]*<\/a>\,?\s*)+<\/div> na to tvé konkrétní zadání už si to dosadíš ne? :) |
||
oto313 Profil |
#6 · Zasláno: 10. 8. 2011, 23:24:14 · Upravil/a: oto313
Bohužel to nefunguje: preg_match_all('/<h4>Hrají:<\/h4>\s*<span data-truncate="280">\s*(<a href="([^\"]+)">[^<]*<\/a>\,?\s*)+<\/span>/', $html, $match) =>
[herci] => Array ( [0] => Array ( [0] => <h4>Hrají:</h4> <span data-truncate="280"> <a href="/tvurce/4777-matheus-nachtergaele/">Matheus Nachtergaele</a>, <a href="/tvurce/13542-leandro-firmino/">Leandro Firmino</a>, <a href="/tvurce/4778-seu-jorge/">Seu Jorge</a>, <a href="/tvurce/13548-phellipe-haagensen/">Phellipe Haagensen</a>, <a href="/tvurce/4779-alexandre-rodrigues/">Alexandre Rodrigues</a>, <a href="/tvurce/13580-douglas-silva/">Douglas Silva</a>, <a href="/tvurce/20052-jonathan-haagensen/">Jonathan Haagensen</a>, <a href="/tvurce/20380-alice-braga/">Alice Braga</a>, <a href="/tvurce/17045-gero-camilo/">Gero Camilo</a> </span> ) [1] => Array ( [0] => <a href="/tvurce/17045-gero-camilo/">Gero Camilo</a>) [2] => Array ( [0] => /tvurce/17045-gero-camilo/) ) ) |
||
oto313 Profil |
#7 · Zasláno: 11. 8. 2011, 14:15:04
Tak jsem to vyřešil, ale neuměl by to někdo zkrátit do jedné funkce?
if (preg_match_all('/<h4>Hrají\:<\/h4>[\s]*<span data-truncate="280">[\s]*(.*)[\s]*<\/span>/', $html, $match, PREG_SET_ORDER)) { if (preg_match_all('/<a href="([^"]*)">([^<]*)<\/a>/', $match[0][1], $match, PREG_SET_ORDER)) { $movie['herci'] = $match; } } Děkuji |
||
peta Profil |
#8 · Zasláno: 12. 8. 2011, 09:13:22 · Upravil/a: peta
Jako vlepit to do te zavorky?
(.*) -> (<a href="([^"]*)">([^<]*)<\/a>) A co kdyz tam neni odkaz na herce, protoze tam nekdo nedodelal tu stranku? :) |
||
oto313 Profil |
#9 · Zasláno: 12. 8. 2011, 11:02:19 · Upravil/a: oto313
Tohle nefungovalo(viz předchozí přízpěvek):
preg_match_all('/<h4>Hrají:<\/h4>\s*<span data-truncate="280">\s*(<a href="([^\"]+)">[^<]*<\/a>\,?\s*) A jak to myslíš s tim, že někdo nedodělal stránku? |
||
Časová prodleva: 13 let
|
0