gpt4 book ai didi

php - 用php修改html属性

转载 作者:可可西里 更新时间:2023-10-31 22:45:41 24 4
gpt4 key购买 nike

我有一个 html 字符串,其中只包含一个 a 元素。示例:

   <a href="http://www.test.com" rel="nofollow external">test</a>

在 php 中,我必须测试 rel 是否包含 external,如果是,则修改 href 并保存字符串。

我已经在寻找 DOM 节点和对象。但是对于一个 A 元素来说它们似乎太多了,因为我必须迭代以获得 html 节点而且我不确定如何测试 rel 是否存在并包含 external.

$html = new DOMDocument();
$html->loadHtml($txt);
$a = $html->getElementsByTagName('a');
$attr = $a->item(0)->attributes();
...

这时候我去获取NodeMapList这个貌似是开销很大的。有没有更简单的方法,或者我应该用 DOM 来做?

最佳答案

Is there any simplier way for this or should I do it with DOM?

用 DOM 做。

这是一个例子:

<?php
$html = '<a href="http://example.com" rel="nofollow external">test</a>';
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$nodes = $xpath->query("//a[contains(concat(' ', normalize-space(@rel), ' '), ' external ')]");
foreach($nodes as $node) {
$node->setAttribute('href', 'http://example.org');
}
echo $dom->saveHTML();

关于php - 用php修改html属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16127142/

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