我有一个字符串,我需要找出所有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
答案 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并在文档中查找目标属性。