我使用 php domDocument 来解析 HTML 内容并将文本附加到图像标签的 url 并将其保存为 HTML。
我的PHP代码如下:
$dom = new domDocument;
libxml_use_internal_errors(true);
$dom->loadHTMLFile('test.html');
libxml_use_internal_errors(false);
$dom->preserveWhiteSpace = false;
$images = $dom->getElementsByTagName('img');
foreach($images as $img)
{
$url = $img->getAttribute('src');
$alt = $img->getAttribute('alt');
echo $src = 'http://api.imgble.com/resize|0.5|0.5/'.$url;
$img->setAttribute( 'src' , $src);
}
$str=$dom->saveHTML();
print $str;
问题是当我$src
在保存之前打印 url() 时,它显示的特殊字符与它显示的完全一样。
http://api.imgble.com/resize|0.5|0.5|0/http://farm1.static.flickr.com/57/197881059_aeb724b1cf.jpg
但是当我保存并打印它时,它显示了那个特殊字符的十六进制代码,即那个垂直条的 %7C | 如下:
http://api.imgble.com/resize%7C0.5%7C0.5%7C0/http://farm1.static.flickr.com/57/197881059_aeb724b1cf.jpg
我什至使用了那个特殊字符的数字代码,甚至使用html_entity_decode()
. 但没有任何效果。有人遇到过这个问题吗?