• ベストアンサー

<img src=http://にしたい

PHPでWebページのソースを取得して そのソースの中の<img>タグの src属性がもしhttp://で始まらなかった場合 取得したURLをsrc属性に加える方法はないでしょうか? 例 URL=http://www.○○.com ソース <img src="/image/01.jpg"> ↓ <img src="http://www.○○.com/image/01.jpg"> に変更したいです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

ファイルを読み書きしながら、 str_replace("src=\"/image","src=\"http://www.example.com/image",data); のようにすればいいと思います。 あるいは、imgタグだけじゃなくてaタグも含めて、urlにhttp://~を追加したいのなら、baseタグを使うことを考えても良いでしょう。 <html><head> <base href="http://www.example.com/"> </head><body> <a href="/next/page.html">つぎ</a> <img src="/image/01.jpg"> </body></html> と書くと、リンク先や画像の場所はwww.example.comになります。

montan113
質問者

お礼

取得したソースのhead部分にbaseタグを挿入することで画像を表示することができました。 迅速で的確な回答ありがとうございました。

その他の回答 (1)

  • mpx
  • ベストアンサー率71% (149/209)
回答No.1

正規表現で置換すれば所望のことはできます。 <?php $html=<<<EOD <img src="/image/01.jpg"> <img src="http://www.○○.com/image/02.jpg"> <img src="/image/03.jpg"> EOD; $ptn='|<img\s+src\s*=\s*"(/[^>]*>)|'; $replace='<img src="http://www.○○.com$1'; $html=preg_replace($ptn,$replace,$html); echo $html; ?> 但し上記例は 相対パスでのリンクまでは対応していません。 

montan113
質問者

お礼

回答していただきありがとうございました。 二方のアドバイスにより無事問題を解決することができました。 本当にありがとうございました。 また、質問する機会がありましたらよろしくお願いします。

関連するQ&A