HTML コンテンツの解析に php domDocument を使用し、イメージ タグの 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;
問題は、保存する前に url( $src
) を印刷すると、表示されたとおりに特殊文字が表示されることです。
http://api.imgble.com/resize|0.5|0.5|0/http://farm1.static.flickr.com/57/197881059_aeb724b1cf.jpg
しかし、保存して印刷すると、その特殊文字の HEX コード、つまりその垂直バーの %7C が表示されます。次のように:
http://api.imgble.com/resize%7C0.5%7C0.5%7C0/http://farm1.static.flickr.com/57/197881059_aeb724b1cf.jpg
その特殊文字の数字コードも使用し、 を使用してデコードしhtml_entity_decode()
ました。しかし、何も機能しません。誰もこの問題に遭遇しましたか?