如何使用PHP获取字符串中的html的特定属性?

时间:2016-10-26 15:44:14

标签: php html regex string attributes

我有一个字符串,我需要找出所有data-id个数字。 这是字符串

<li data-type="mentionable" data-id="2">bla bla... 
<li data-type="mentionable" data-id="812">some test 
<li>bla bla </li>more text 
<li data-type="mentionable" data-id="282">

所以最后它会找到我:2,812,282

2 个答案:

答案 0 :(得分:1)

改为使用NetStream.Play.Failed

DOMDocument

<小时/> 这为您<?php $data = <<<DATA <li data-type="mentionable" data-id="2">bla bla... <li data-type="mentionable" data-id="812">some test <li>bla bla </li>more text <li data-type="mentionable" data-id="282"> DATA; $doc = new DOMDocument(); $doc->loadHTML($data, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); $xpath = new DOMXPath($doc); $ids = []; foreach ($xpath->query("//li[@data-id]") as $item) { $ids[] = $item->getAttribute('data-id'); } print_r($ids); ?> 提供了a demo on ideone.com

答案 1 :(得分:0)

您可以使用正则表达式在preg_match_all()中找到字符串的目标部分。

preg_match_all("/data-id=\"(\d+)\"/", $str, $matches);
// $matches[1] is array contain target values
echo implode(',', $matches[1]) // return 2,812,282

查看demo

中的代码结果

因为您的字符串是HTML,所以您可以使用DOMDocument类来解析HTML并在文档中查找目标属性。