2015-12-16 15 views
9

私はfile_get_contentsを使ってウェブページ(http://3sk.tv)の内容を取得しようとしていました。残念なことに、結果の出力には多くの要素(画像、書式設定、スタイリングなど)がなくなり、基本的には元のページのようには見えません。file_get_contentsがウェブページ全体を返さない

この同じ方法を使用して取得しようとした他のURLではこのようなことは起こりませんでしたが、何らかの理由でこの特定のURL(http://3sk.tv)が正しく動作しません。

私が使用しているコードは次のとおりです。

<?php 
$homepage = file_get_contents('http://3sk.tv'); 
echo $homepage; 
?> 

私は何も足りませんか?これを適切に機能させる方法に関するすべての提案は非常に高く評価されます。あなたの時間と配慮に感謝します。通常の動作ザッツ

+0

これには 'cURL'を使うことをお勧めします。 [詳細はこちら](https://davidwalsh.name/curl-download)また、疲れている、擦り傷は常に法律ではない... – chriz

+0

あなたが言及したカールの実装を使用して試してみましたが、残念なことに、全く変化はありませんでした。あなたのご意見ありがとうございます。 – jameslanvin

+0

Btwこれはユニ・リサーチ・ペーパーで、目的を削るものではありません – jameslanvin

答えて

4

私はちょうどあなたのコードに<base>タグを追加する相対パス

http://www.w3schools.com/tags/tag_base.asp

を解決する一つの迅速な回避策を持っています。

<?php 
$homepage = file_get_contents('http://3sk.tv'); 
echo str_replace(
    '<head>', 
    '<head><base href="http://3sk.tv" target="_blank">', 
    $homepage 
); 
?> 

役立つはずです。

+0

こんにちは@ jQuery00、あなたの提案された方法を使用して試してみましたが、最終的な出力(体の画像が現れました)に改善がありましたが、CSSとスタイリングの多くの要素が欠けています。どんな提案も高く評価されます。おかげで – jameslanvin

+0

こんにちは@ジャズランバンあなたのための良いニュース。私は問題を見つけ、質問を更新しました。今、魅力のように動作します! – jQuery00

+1

もう一度テストしました。あなたは、file_get_contents whispererです!驚くばかり。ほぼ完璧に動作します!ありがとう – jameslanvin

5

、あなただけのファイルをつかんで、そして画像、スタイルシートなどに関連していないよう...

+0

あなたの絶対的なイメージやCSSをリロードしません...どのようにアイデアやコンテンツ全体を取得する方法の提案? – jameslanvin

3

これが予想されます。ソースコードを見ると、完全なURL(exlib/dropdown/dropdown.css)を持たない場所がたくさんあります。これは、ブラウザにhttp://3sk.tv/lib/dropdown/dropdown.cssと仮定します。ただし、あなたのウェブサイトには存在しないYOURURL.COM/lib/dropdown/dropdown.cssになります。これは多くのコンテンツの場合に当てはまります。

他のウェブサイトのソースを印刷して動作させることはできません。同じURLである必要があります。

他のウェブサイトを埋め込む最も良い方法は、通常iframeまたはsome alternativeを使用することです。

2

ウェブページは完全にはサーバー側で生成されていませんが、HTML部分が読み込まれた後はJavaScriptに大きく依存しています。ブラウザで表示されているようにページをレンダリングする場合は、代わりにヘッドレスブラウザが必要です。これはPhantomJSへの結合:http://jonnnnyw.github.io/php-phantomjs/

+1

(これは "これまでに起こったことはありませんでした" - 自分自身を支えて、これまでのところ幸運でした、これはほとんどいつも起こります) – Piskvor

関連する問題