在我的情况下,如何在PHP中成功修改CSS类文档的DOM?

How to successfully modify in PHP the DOM of the Document of a CSS class in my case?

提问人: 提问时间:6/11/2022 更新时间:6/11/2022 访问量:94

问:

我正在尝试修改(替换)标签的CSS类的属性(在下面的绿色屏幕截图中框内),我已经很好地检查了该属性,并尝试将其属性替换(即用新的CSS类替换标签href属性):DomDocumentnewa function striposhrefstr_ireplace

enter image description here

我的以下PHP代码看起来正确,但根本不起作用:

libxml_use_internal_errors(true);
$parser = new DOMDocument();
$parser->loadHTMLFile("https://fr.wikipedia.org/wiki/Alibaba_Group");
$get_a_tags = $parser->getElementsByTagName("a");
foreach ($get_a_tags as $get_a_tag) {
                if (stripos($get_a_tag->getAttribute('class'), "new") !== false) {
                    $get_href_in_a_infobox = $get_a_tag->getAttribute('href');
                    $term = $get_a_tag->nodeValue;
                    $urlSearch = BASE_PATH."search.php?term=$term&type=sites";
                    // var_dump($urlSearch."<br><br>");
                    $wikipediaInfoboxTable = str_ireplace($get_href_in_a_infobox, $urlSearch, $wikipediaInfoboxTable);
                }
            }

那么,如何成功地将具有CSS类的所有标签的属性值替换为变量的值,该变量知道包含我想在其中进行替换???的信息框的整个表hrefanew$urlSearch$wikipediaInfoboxTable

谢谢你,请帮帮我。

php dom文档

评论

0赞 RiggsFolly 6/11/2022
你能用英文写标题吗
0赞 6/11/2022
大功告成。我真的需要帮助。
0赞 bloodyKnuckles 6/11/2022
你的代码对我有用。你得到什么错误?在哪里设置?$wikipediaInfoboxTable
0赞 bloodyKnuckles 6/11/2022
$wikipediaInfoboxTable是一个字符串,对吧?如果它是 PHP DOMElement,它将无法工作。

答:

0赞 cOle2 6/11/2022 #1

由于您正在使用,因此可以尝试使用该方法来更改值:DomDocumentsetAttributehref

foreach ($get_a_tags as $get_a_tag) {
    //...
    $get_a_tag->setAttribute('href', $urlSearch);
}
$newHtml = $parser->saveHTML();