16

これがPHPのドキュメントです

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

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

代わりにこのクライアント側を実行する方法があるので、文字列を重ねる必要はありませんか?

4

8 に答える 8

9

あなたができる

JSコード:

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

PHPコード:

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

それはあなたにURLの内容を得るでしょう。

于 2012-05-21T22:38:34.007 に答える
8

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やクロスオリジンリソースシェアリングなどのオプションを自由に使用できますが、どちらももう一方の端を設定する必要があるため、ドメインを選択してデータのリクエストを開始することはできません。

参考資料:同一生成元ポリシー

于 2012-05-21T22:37:23.913 に答える
6

この関数は、PHPと同じようにファイルを文字列として返しますfile_get_contents()

function file_get_contents(uri, callback) {
    fetch(uri).then(res => res.text()).then(text => callback(text));
}

ただし、PHPとは異なり、JavaScriptはデータが返されるのを待たずに、次のステートメントに進みます。

于 2019-04-17T21:31:10.873 に答える
6

それは2020年であり、いくつかの現代的なアプローチです。

async function file_get_contents(uri, callback) {
    let res = await fetch(uri),
        ret = await res.text(); 
    return callback ? callback(ret) : ret; // a Promise() actually.
}

file_get_contents("https://httpbin.org/get", console.log);
// or
file_get_contents("https://httpbin.org/get").then(ret => console.log(ret));
于 2020-05-14T00:49:24.413 に答える
3

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

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

HTMLページを含める必要がある場合は、それを<iframe>要素に貼り付けることができます。ただし、これにはいくつかのレイアウトの落とし穴があります(ページは固定サイズの要素になります)。

于 2012-05-21T22:37:17.113 に答える
2

または、php.jsライブラリを使用できます。これにより、javascript用のいくつかのphp関数が可能になります。file_get_contents()はそのうちの1つを関数化します。

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

php.jsに関する詳細情報を見つけることができます:http://phpjs.org/

于 2012-05-21T23:07:23.483 に答える
0

これはあなたにとって役立つかもしれないと思います:

node.jsの「file-get-contents」メソッドを使用したnpmパッケージ https://www.npmjs.com/package/file-get-contents

非同期であるため、expressを使用している場合は、次のように使用する必要があります

app.get('/',  async (req, res)=>{
    //paste here the code below
}

const fileGetContents = require('file-get-contents');
 
// A File request
 
try {
    let data = await fileGetContents('/tmp/foo/bar');
 
    console.log(data);
} catch (err) {
    console.log('Unable to load data from /tmp/foo/bar');
}
 
// Or a HTTP(S) request
 
fileGetContents('https://pokeapi.co/api/v2/pokemon/1/').then(json => {
    const pokemon = JSON.parse(json);
 
    console.log(`Name of first pokemon is ${pokemon.name}`);
}).catch(err => {
    console.err(`Unable to get content from PokeAPI. Reason: ${err.message}`);
});
于 2021-10-14T05:56:49.680 に答える
-1
  <div id="svg">

  </div>
  <script>

    function file_get_contents(uri, callback) {
         fetch(uri).then(res => res.text()).then(text => 
        {

            var xmlSvg =text;
            console.log(xmlSvg );
            document.getElementById('svg').innerHTML = xmlSvg;
        })
    }

    
    var uri ='You-urlllllllll-svg';

    file_get_contents(uri);

</script>
于 2021-05-06T22:11:20.047 に答える