PHPでスクレイピングHTMLコメント
-
19-09-2019 - |
質問
私は周りを探したが解決策を見つけるためにまだ持ってきました。私は、HTMLドキュメントをこすりと2つのコメントの間のテキストは、しかし、これまでのところ成功し、これを行うことができなかった取得しようとしている。
私はPHPを使用していますし、ここで推奨PHPシンプルなDOMパーサを何度も試みたが、それは私がやりたいように見えることはできません。
ここ(の一部)私が解析したいページです
<div class="class">
<!-- blah -->
text
<!-- end blah -->
Text I want
<!-- blah -->
text
<!-- end blah -->
</div>
おかげ
解決
(すなわち、「何とか」第1および第2のセクションでは同じではありません)各コメントが異なっていると仮定すると、あなたはそれらの間のすべてをつかむためにいくつかの簡単なstrpos
を使用することができます。 の正規表現は必要ありません。の
$startStr = '<!-- end blah1 -->';
$endStr = '<!-- start blah2 -->';
$startPos = strpos($HTML, $startStr) + strlen($startStr);
$endPos = strpos($HTML, $endStr );
$textYouWant = substr($HTML, $startPos, $endPos-$startPos);
コメント2組のをした場合です。が同じで、あなたがstrpos
のoffset
パラメータを使用して、第二の「何とか」を見つけるために、これを変更する必要があります。
他のヒント
たぶん、あなたは正規表現を使用することができますか?
$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);
所属していません StackOverflow