phpのcurlを使って外部のHTMLを取得して表示しようとしています。
###発生している問題・エラーメッセージ
外部HTMLにCSSが設定されていてその中でbackground urlで画像が設定
されています。
その時に、ブラウザにHTML表示された際にCSSの内容やCSS内で
設定されている画像が正しく表示されません。
###該当のソースコード
php 5.3.29 curl 7.47.1 オプションとしては curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt( $ch, CURLOPT_TIMEOUT, 5 ); のみ設定しています。 $html = curl_exec($ch); にて取得した文字列を改行コードで分割し、1行ずつechoして ブラウザに投げています。
###試したこと
CURLOPT_RETURNTRANSFERの値をfalseにするとCSSなども正常に
表示されますが、戻り値の中で一部の文字列を置き換えたいために
CURLOPT_RETURNTRANSFERはtrueにしています。
通信のヘッダーを確認したところCSSや画像のcontent-typeが
text/htmlになっていることが原因であると考えています。
正しいcontent-typeを設定する方法はあるでしょうか?
または、CURLOPT_RETURNTRANSFERの値をfalseにして取得した
データ内の文字列の置き換え方法などがあるでしょうか?
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答1件
あなたの回答
tips
プレビュー