HTML の文字列の中を調べて<img>
、属性が相対アドレスであるすべてのタグsrc
を絶対 URL に変更する必要があります。したがって、この:
<img src="puppies.jpg">
なる必要があります:
<img src="http://sitename.com/path/puppies.jpg">
属性がすでに絶対<img>
であるタグを無視します。src
私は PHP を使用しており、preg_replace()
. ヘルプ!ありがとう!
HTML の文字列の中を調べて<img>
、属性が相対アドレスであるすべてのタグsrc
を絶対 URL に変更する必要があります。したがって、この:
<img src="puppies.jpg">
なる必要があります:
<img src="http://sitename.com/path/puppies.jpg">
属性がすでに絶対<img>
であるタグを無視します。src
私は PHP を使用しており、preg_replace()
. ヘルプ!ありがとう!
これは正規表現の仕事ではありません。XML/DOM パーサーの仕事です。
DOMDocument を試してみます。
$DOM = new DOMDocument;
$DOM->loadHTML($html);
$imgs = $DOM->getElementsByTagName('img');
foreach($imgs as $img){
$src = $img->getAttribute('src');
if(strpos($src, 'http://sitename.com/path/') !== 0){
$img->setAttribute('src', "http://sitename.com/path/$src");
}
}
$html = $DOM->saveHTML();
これは正規表現の仕事ではありません。XML/DOM パーサーの仕事です。
いいえ、そうではありません。各 src 属性にプレフィックスを追加するだけの場合は、単純な文字列関数を使用し、xml、regex、または dom の解析について考えないことをお勧めします…</p>
$str = str_replace('<img src="', '<img src="http://prefix', $str);
後で間違ったリンク (既に絶対的なリンク) をクリーンアップできます
$str = str_replace('<img src="http://prefixhttp://', '<img src="http://', $str);
回避できる場合は、regexp/dom でコードを爆破しないでください。