我正在尝试从我拥有的短代码标记中解析属性。我开始的字符串看起来像这样。
href="https://example.com" class="bootstrap class names"
我正在使用这个表达式,它让我在那里几乎没有。
$attribute_dna = '/"\s/';
$attributes = preg_split($attribute_dna, $attributes_string, null, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
我得到的输出就是这个......
string(27) "href="https://example.com" <--Problem is right here (missing a quote)
string(17) "class="bootstrap class names""
你可以在上面看到,如果我在href上有结尾引用,就像第二个那样完美。但它并没有捕获分界仪。
我很感激能得到的任何帮助。提前致谢。
答案 0 :(得分:0)
这不是更漂亮吗?
<?php
$html = <<<DATA
<div>
<a href="https://example.com" class="bootstrap class names">Some link here</a>
</div>
DATA;
# set up the DOM
$dom = new DOMDocument();
$dom->loadHTML($html, LIBXML_HTML_NODEFDTD | LIBXML_HTML_NOIMPLIED);
# set up the xpath
$xpath = new DOMXPath($dom);
foreach ($xpath->query("//a") as $link) {
foreach ($link->attributes as $attr) {
$name = $attr->nodeName;
$value = $attr->nodeValue;
echo "Attribute '$name': '$value'\n";
}
}
?>
哪个收益
Attribute 'href': 'https://example.com'
Attribute 'class': 'bootstrap class names'