所以,我正在编写应该解析不同网站的代码,其中一些使用windows-1250
编码,其中一些使用' utf-8'。我对这些网站没有任何影响,你可能会猜到那些带有' windows-1250'让我头痛。所以,这是我使用的代码:
$doc = new DOMDocument();
@$doc->loadHTML($response);
$xpath = new DOMXpath($doc);
$anchors = $xpath->query("//a[@href]");
foreach( $anchors as $anchor) {
$href = $anchor->getAttribute("href");
$anchor->setAttribute("href", 'http://example.com/');
}
$response = $xpath->document->saveHTML();
并且当我尝试运行此脚本时,这是浏览器中的输出:
Warning: DOMDocument::saveHTML(): output conversion failed due to conv error, bytes 0x9A 0x61 0x72 0x6B
那么,有没有办法用' windows-1250'来处理这个错误?编码,这将工作utf-8也?我尝试将utf_encode
与$response
一起使用并通过,但随后国际字符混乱。
答案 0 :(得分:0)
如果您只是想更改所有锚标签的href,那么您可以使用jquery
代码如下所示:
//loop through the anchor tags
$("a").each(function(){//begin each function
//set the href attributes
$(this).attr("href","http://example.com/");
});//end each function
这是一个jsfiddle示例:http://jsfiddle.net/fu5fxawm/1/
如果将鼠标悬停在链接上,您会看到它们已被更改。