2012-05-21 8 views
7

ここにはPHP documentationfile_get_contents()を実行するJavaScriptの方法はありますか?

ここでは、これを行うための純粋なクライアントの方法が見つからない場合、私はそれをAjax呼び出しでどのように使用しますか。

$homepage = file_get_contents('http://www.example.com/'); 
echo $homepage; 

このクライアント側を代わりに行う方法はありますか?そうではありません。文字列をajaxにする必要はありませんか?

+0

あなたが「含める」にしたい、そのファイルの内容は何ですか? – MonkeyMonkey

+0

上記の例に似ています.itはパラメータとしてURLを受け取ります.URLはユーザー定義です。 –

答えて

6

あなたは

JSコードを行うことができます。

+0

@ CS_2013 - それはそうでなければなりません。変更された答え。 – PitaJ

+0

自分のサーバーからのデータをAjax ...良いアイデア –

+0

@ CS_2013 - ありがとうございます – PitaJ

3

一般的な意味ではありません。ドメイン間の制限により、Javascriptコードではこれを実行できません。

ターゲットサイトにCORS(クロスオリジンリソース共有)が設定されている場合は、XMLHttpRequestを使用してファイルをロードできます。ほとんどのサイトは、セキュリティ上の理由からデフォルトではオフになっているため、ほとんど必要ありません。

HTMLページを含めるだけでよい場合は、要素に貼り付けることができます。これはいくつかのレイアウトの問題を抱えています(ページは固定サイズの要素で終わります)。

+0

... iframeの分析を行うことはできますか...おそらくタイトルを取得する方法はありますか? –

+0

@ CS_2013いいえ、iframeがあなたのドメインのドキュメントではない場合はありません。 – Sampson

+0

フレームの内容はかなり完全に制限されています。 – duskwuff

5

JavaScriptは外に出てページのデータをスクラップできません。ローカルPHPスクリプトを呼び出して、その代わりにデータを取得することができますが、ブラウザのJavaScriptはこれを行うことができません。

$.post("/localScript.php", { srcToGet: 'http://example.com' }, function(data){ 
    /* From within here, data is whatever your local script sent back to us */ 
}); 

あなたはあなたの処分でJSONPとのクロスオリジンリソース共有などのオプションがありますが、それらの両方は、もう一方の端を設定する必要なので、あなただけのドメインを選択し、データの要求を離れて発射開始することはできません。

参考資料:

$.post('phppage.php', { url: url }, function(data) { 
    document.getElementById('somediv').innerHTML = data;   
}); 

PHPコード:

$url = $_POST['url']; 
echo file_get_contents($url); 

あなたのURLの内容になるだろうSame origin policy

+0

これはこれまでに変わるでしょうか? –

0

または、php.jsライブラリを使用できます。どのjavascriptのためのいくつかのPHP関数を許可する。 file_get_contents()はそれらの1つを機能させます。

<script> 
var data = file_get_contents('Your URL'); 
</script> 

あなたはphp.jsについての詳細情報を見つけることができます:http://phpjs.org/

+1

これは同様の発信元ポリシーの対象にもなります –

関連する問題