Wątek przeniesiony 2014-10-07 12:49 z PHP przez dzek69.

Wyciąganie całego znacznika p z tekstu

0

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

0

SimpleXML + xpath

0

a za pomocą preg_match_all jakieś wyrażenie regularne

0

Spróbuj takim:
!<p(?:\s+[^>]+)?>(.*?)</p>!s

1

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

0
freemp3 napisał(a):

Spróbuj takim:
!<p(?:\s+[^>]+)?>(.*?)</p>!s

Niestety nie działa

0

/<p[^>]*>(.*?)<\/p>/

pisane z ręki, jak nic nie pomyliłem to zadziała

0

Pokaż kawałek html, na którym operujesz oraz wynik preg_match_all

0
$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

1

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1