Witam jak wyciągnąć wszystkie znaczniki (cały znacznik)
<p id="moja" class="jaks"></p>
oczywiście id i class mogą być inne. Bardzo proszę o pomoc
Wątek przeniesiony 2014-10-07 12:49 z PHP przez dzek69.
Witam jak wyciągnąć wszystkie znaczniki (cały znacznik)
<p id="moja" class="jaks"></p>
oczywiście id i class mogą być inne. Bardzo proszę o pomoc
SimpleXML + xpath
a za pomocą preg_match_all jakieś wyrażenie regularne
Spróbuj takim:
!<p(?:\s+[^>]+)?>(.*?)</p>!s
html nie jest językiem regularnym, a więc wyrażenia regularne są do tego wysoko niezalecane (jedynie bardzo proste stringi można tym parsować!!!) - miej to na uwadze
freemp3 napisał(a):
Spróbuj takim:
!<p(?:\s+[^>]+)?>(.*?)</p>!s
Niestety nie działa
/<p[^>]*>(.*?)<\/p>/
pisane z ręki, jak nic nie pomyliłem to zadziała
Pokaż kawałek html, na którym operujesz oraz wynik preg_match_all
$b = '<span>sdadsa</span>
<p id="moja" class="jaks"></p>
<a href="#">jakiś tam link</a>
<p id="twoja" class="klasa"></p>';
preg_match_all("/<p[^>]*>(.*?)<\/p>/", $b, $match);
echo '<pre>';
print_r($match);
i chciałbym mieć efekt że w tablicy kolejno są znaczniki p całe
No przecież masz.
Array
(
[0] => Array
(
[0] => <p id="moja" class="jaks"></p>
[1] => <p id="twoja" class="klasa"></p>
)
[1] => Array
(
[0] =>
[1] =>
)
)
Oczywiście tego nie widzisz, bo jak robisz print_r
a w środku masz kod HTML to przecież przeglądarka go parsuje!
Zajrzyj w źródło strony albo zrób sobie np echo htmlspecialchars($match[0][0]);
i sam zobacz