HTML-Kommentar Schaben in PHP
-
19-09-2019 - |
Frage
Ich habe mal umschauen, aber noch eine Lösung zu finden. Ich versuche, ein HTML-Dokument und erhalten Sie den Text zwischen zwei Kommentaren zu kratzen jedoch nicht in der Lage gewesen, dies bisher erfolgreich zu tun.
Ich bin mit PHP und haben die PHP einfache DOM-Parser versucht hier oft empfohlen, aber kann nicht scheinen, um es zu bekommen zu tun, was ich will.
Hier ist (ein Teil) die Seite, dass ich analysieren möge:
<div class="class">
<!-- blah -->
text
<!-- end blah -->
Text I want
<!-- blah -->
text
<!-- end blah -->
</div>
Danke
Lösung
Unter der Annahme, dass jeder Kommentar unterschiedlich ist (das heißt „blah“ ist nicht gleich in den ersten und den zweiten Abschnitt), können Sie einige einfache strpos
zu greifen alles zwischen ihnen verwenden. Reguläre Ausdrücke sind nicht erforderlich.
$startStr = '<!-- end blah1 -->';
$endStr = '<!-- start blah2 -->';
$startPos = strpos($HTML, $startStr) + strlen($startStr);
$endPos = strpos($HTML, $endStr );
$textYouWant = substr($HTML, $startPos, $endPos-$startPos);
Wenn die zwei Sätze von Kommentaren ist die gleiche ist, werden Sie dies ändern müssen, um den zweiten „blah“ zu finden, strpos
mit ist offset
Parameter
Andere Tipps
Vielleicht können Sie reguläre Ausdrücke verwenden?
$text = '
<div class="class">
<!-- blah -->
text
<!-- end blah -->
Text I want
<!-- blah -->
text
<!-- end blah -->
</div>
';
$regex = '/(<!-- end blah -->)(.*?)(<!-- blah -->)/ims';
$match = preg_match_all ($regex, $text, $matches);