gpt4 book ai didi

php - 从 PHP 中的字符串中提取 html 属性

转载 作者:行者123 更新时间:2023-12-03 18:42:32 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How do you parse and process HTML/XML in PHP?

(30 个回答)


7年前关闭。




我有一个看起来像这样的变量:

$var = '<li data-tpl-classname="class" data-tpl-title="innerHTML"></li>'

我想以某种方式提取 data-tpl-attributes,所以我最终得到一个如下所示的结果数组:
$array = (
'classname' => 'class',
'title' => 'innerHTML'
)

“data-tpl-”属性的数量各不相同,并不总是 <li>元素。除此之外,它始终遵循相同的格式: data-tpl-attributename="attributePlacement" .

如何检索这些属性并将它们存储在数组中, 不使用正则表达式 ?我说没有正则表达式,因为在我看来,使用正则表达式解析 html 似乎是一种邪恶的做法,或者在这种情况下可以吗?

最佳答案

您可以很好地使用 DOMDocument 类,是的,不要使用正则表达式。这只是一个开始,您可以很好地探索它。

<?php
$var = '<li data-tpl-classname="class" data-tpl-title="innerHTML"></li>';
echo "<pre>";

function parseTag($content,$tg)
{
$dom = new DOMDocument;
$dom->loadHTML($content);
$attr = array();
foreach ($dom->getElementsByTagName($tg) as $tag) {
foreach ($tag->attributes as $attribName => $attribNodeVal)
{
$attr[$attribName]=$tag->getAttribute($attribName);
}
}
return $attr;
}

$attrib_arr = parseTag($var,'li');
print_r($attrib_arr);

OUTPUT :
Array
(
[data-tpl-classname] => class
[data-tpl-title] => innerHTML
)

Demo

关于php - 从 PHP 中的字符串中提取 html 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23262987/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com