PHP - 从每个 <div> 的字符串中提取属性和文本
PHP - Extract attributes and text from string for each <div>
我有一个字符串 $value
看起来像这样:
'<div id='1' data-AAA='something1' data-BBB='something2'>My</div><div id='5' data-AAA='something5' data-BBB='something6'>Web</div>
...'
在 PHP 中,我想为每个 <div>
提取所有数据属性(此处为 id
、data-AAA
和 data-BBB
)以及文本,然后将它们放入这样的数组中:
Array
[0]
ID => 1
data-AAA => something1
data-BBB => something2
text => My
[1]
ID => 5
data-AAA => something5
data-BBB => something6
text => Web
是否可以使用循环从字符串中提取所有这些信息?作为新人,我不知道如何为字符串做这件事...
编辑 1
感谢回答中给出的 DOM 文档 (http://php.net/manual/en/class.domdocument.php),我尝试了这个并且那个有效!
$dom = new DOMDocument;
$dom->loadHTML($value);
foreach ($dom->getElementsByTagName('div') as $ST) {
$valueID = $ST->getAttribute('id');
$valueDataTimeStart = $ST->getAttribute('data-AAA');
$valueDataTimeStart = $ST->getAttribute('data-BBB');
$valueDataTimeEnd = $ST->getAttribute('id');
var_dump($valueID);
var_dump($valueDataTimeStart);
var_dump($valueDataTimeEnd);
}die;
像这样:
$dom = new DOMDocument();
$dom->loadHTML($l_sContent);
$l_aDiv = $dom->getElementsByTagName("div");
foreach ($l_aDiv as $l_aOneDiv) {
// search attributes on $l_aOneDiv
}
我有一个字符串 $value
看起来像这样:
'<div id='1' data-AAA='something1' data-BBB='something2'>My</div><div id='5' data-AAA='something5' data-BBB='something6'>Web</div>
...'
在 PHP 中,我想为每个 <div>
提取所有数据属性(此处为 id
、data-AAA
和 data-BBB
)以及文本,然后将它们放入这样的数组中:
Array
[0]
ID => 1
data-AAA => something1
data-BBB => something2
text => My
[1]
ID => 5
data-AAA => something5
data-BBB => something6
text => Web
是否可以使用循环从字符串中提取所有这些信息?作为新人,我不知道如何为字符串做这件事...
编辑 1
感谢回答中给出的 DOM 文档 (http://php.net/manual/en/class.domdocument.php),我尝试了这个并且那个有效!
$dom = new DOMDocument;
$dom->loadHTML($value);
foreach ($dom->getElementsByTagName('div') as $ST) {
$valueID = $ST->getAttribute('id');
$valueDataTimeStart = $ST->getAttribute('data-AAA');
$valueDataTimeStart = $ST->getAttribute('data-BBB');
$valueDataTimeEnd = $ST->getAttribute('id');
var_dump($valueID);
var_dump($valueDataTimeStart);
var_dump($valueDataTimeEnd);
}die;
像这样:
$dom = new DOMDocument();
$dom->loadHTML($l_sContent);
$l_aDiv = $dom->getElementsByTagName("div");
foreach ($l_aDiv as $l_aOneDiv) {
// search attributes on $l_aOneDiv
}