我不想成为帮助吸血鬼:你不必为我编码。 我想主要想知道我能做到这一点。
我应该如何回应字符串中的前5个div? 我使用“file_get_contents”抓住它,把它放在一个字符串中,解析它,然后回显它。 我该如何解析它?正则表达式?一些dom解析器?
与此字符串一样:
<div class="div">1</div><div class="div">2</div><div class="div">3</div><div class="div">4</div><div class="div">5</div><div class="div">end!</div>
非常感谢, 欢呼声
答案 0 :(得分:1)
试试这个:
><
的strpos作为模式而不是substr。这是更快的方式<强>更新强> 这里使用strpos和substr:
示例代码$data = '<div class="div">1</div><div class="div">2</div><div class="div">3</div><div class="div">4</div><div class="div">5</div><div class="div">end!</div>';
$pos = 0;
for($i=0; $i<5; $i++) {
$pos = strpos($data, '><', $pos+2);
}
echo substr($data, $pos+1);
答案 1 :(得分:0)
答案 2 :(得分:0)
如果div的内容可以包含子串“div”或其他元素,最好使用一些解析器。我推荐phpQuery,它很像jQuery,但对于php。
代码将如下所示:
echo pq('div:lt(5)', $string)->html()
答案 3 :(得分:0)
$string = '<div class="div">1</div><div class="div">2</div><div class="div">3</div><div class="div">4</div><div class="div">5</div><div class="div">end!</div>';
$dom = new DOMDocument();
$new_dom = new DOMDocument;
$dom->loadHTML($string);
$count = 0;
foreach ($dom->getElementsByTagName('div') as $node)
{
$new_dom->appendChild($new_dom->importNode($node, TRUE));
if (++$count >= 5)
break;
}
echo $new_dom->saveHTML();
您可以使用PHP的DOMDocument类,而不是使用jQuery或第三方库。
答案 4 :(得分:-1)