HTML注释在PHP刮
-
19-09-2019 - |
题
我一直在四处寻找,但还没有找到一个解决方案。我想刮HTML文档并获得文本之间的两点意见但一直未能成功做到这一点至今。
我在使用PHP和尝试了PHP简单DOM解析器推荐这里很多次,但似乎无法得到它做我想做的。
下面的(部分),我希望来解析页面:
<div class="class">
<!-- blah -->
text
<!-- end blah -->
Text I want
<!-- blah -->
text
<!-- end blah -->
</div>
由于
解决方案
假设每个评论是不同的(即,“嗒嗒”是不是在第一和第二部分是相同的),则可以使用一些简单的strpos
抓住它们之间的一切。 正则表达式是没有必要的。
$startStr = '<!-- end blah1 -->';
$endStr = '<!-- start blah2 -->';
$startPos = strpos($HTML, $startStr) + strlen($startStr);
$endPos = strpos($HTML, $endStr );
$textYouWant = substr($HTML, $startPos, $endPos-$startPos);
如果两套意见的是的一样,你需要修改此找到第二个“嗒嗒”,使用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