php count html标签并从字符串中获取其位置

时间:2013-12-20 10:17:30

标签: php

我在php中有一个字符串:

Lorem ipsum dolor sit amet
<br />
Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
<hr>
<br />
Ut labore et dolore magna aliquyam erat, sed diam voluptua.
<br />
<hr>
At vero eos et accusam et justo duo dolores et ea rebum.
<hr>
Stet clita kasd gubergren, no sea takimata sanctus est
<hr>
<br />
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet
<hr>
<br />
consetetur sadipscing elitr, sed diam nonumy eirmod tempor
<br />
<hr>
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

现在在count two <hr>之后我想删除其余的字符串,所以它看起来像这样:

Lorem ipsum dolor sit amet
<br />
Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
<hr>
<br />
Ut labore et dolore magna aliquyam erat, sed diam voluptua.
<br />
<hr>

我如何计算并获得第二个<hr>位置?我试过preg_match()但没有机会得到正确的结果。

非常感谢建议,感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

你可以像这样使用explode来实现这个功能:

$str = explode("<hr>","Lorem ipsum dolor sit amet
<br />
Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
<hr>
<br />
Ut labore et dolore magna aliquyam erat, sed diam voluptua.
<br />
<hr>
At vero eos et accusam et justo duo dolores et ea rebum.
<hr>
Stet clita kasd gubergren, no sea takimata sanctus est
<hr>
<br />
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet
<hr>
<br />
consetetur sadipscing elitr, sed diam nonumy eirmod tempor
<br />
<hr>");

$new_arr[] = "<hr>".$str[0];
$new_arr[] = $str[1];
print_r(join("<hr>",$new_arr));

答案 1 :(得分:2)

您可以使用stripos查找<hr>的位置,然后删除第二个位置后的所有内容。

写起来应该不难;)