这是PHP文档
如果我没有找到纯客户端方式来执行此操作,我将在Ajax调用中使用它.
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
Run Code Online (Sandbox Code Playgroud)
有没有办法做这个客户端,所以我没有ajax字符串结束?
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 */
});
Run Code Online (Sandbox Code Playgroud)
您可以使用JSONP和跨源资源共享等选项,但这两个选项都需要设置另一端,因此您不能只选择一个域并开始触发数据请求.
进一步阅读:同源政策
你能做到的
JS代码:
$.post('phppage.php', { url: url }, function(data) {
document.getElementById('somediv').innerHTML = data;
});
Run Code Online (Sandbox Code Playgroud)
PHP代码:
$url = $_POST['url'];
echo file_get_contents($url);
Run Code Online (Sandbox Code Playgroud)
那会得到你的网址内容.
这个函数将文件作为字符串返回,就像 PHP 一样file_get_contents()。
function file_get_contents(uri, callback) {
fetch(uri).then(res => res.text()).then(text => callback(text));
}
Run Code Online (Sandbox Code Playgroud)
但是与 PHP 不同的是,JavaScript 会继续执行下一条语句,而不是等待数据返回。
现在是 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));
Run Code Online (Sandbox Code Playgroud)