- ベストアンサー
<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"> に変更したいです。 よろしくお願いします。
- みんなの回答 (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になります。
その他の回答 (1)
- mpx
- ベストアンサー率71% (149/209)
正規表現で置換すれば所望のことはできます。 <?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; ?> 但し上記例は 相対パスでのリンクまでは対応していません。
お礼
回答していただきありがとうございました。 二方のアドバイスにより無事問題を解決することができました。 本当にありがとうございました。 また、質問する機会がありましたらよろしくお願いします。
お礼
取得したソースのhead部分にbaseタグを挿入することで画像を表示することができました。 迅速で的確な回答ありがとうございました。