我一直在四处寻找,但还没有找到一个解决方案。我想刮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);

如果两套意见的的一样,你需要修改此找到第二个“嗒嗒”,使用strposoffset参数

其他提示

也许你可以使用正则表达式?

$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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top