我正在尝试在PHP
变量中获取Ajax数据。代码运行正常,我可以在PHP
变量中获取ajax数据。
我的问题是:我可以再次将PHP
变量用于file_get_contents
函数吗?
我的PHP代码就是这样
<?php
$html = file_get_contents('https://someurl.com');
if (isset($_POST['job']))
{
$job = $_POST['job'];
$attrb = $_POST['attrb'];
echo $job;
echo $attrb;
$htmlcontents = file_get_contents($attrb);
}
?>
Ajax代码如下
$(document).ready(function(){
$.post("test.php",
{
job: exactdatainner,
attrb: getattr
},
function(data,status){
var obj = data.split('http');
var title = obj[0];
var link = 'http' + obj[1];
$(".job").html(title);
$(".attribute").html(link);
});
});
此代码适合第一步,即从ajax
发送数据并接收响应并将结果打印在Div
中。
现在我正在尝试获取URL(此URL是第一步创建的,并存储在PHP
变量中。代码为:$attrb = $_POST['attrb'];
)
如您所见,我能够在第一步中打印该值,但是当我尝试再次获取URL的内容时,它给了我错误提示。
答案 0 :(得分:1)
尝试下面的代码,我已经测试过并且可以正常工作。返回404 response <h1>Sorry This Page is Not Available Now</h1>
,我还通过在浏览器中点击相同的URL验证了响应,因此它可以正常工作。
file_get_contents()
停止显示非2xx状态代码的警告错误。
您甚至只需要获取故障状态代码(例如404
或500
)上的内容,因为您需要设置ignore_errors => true
,默认值为false。
echo file_get_contents(
'https://www.sarkariresult.com/force/navy-sst',
false,
stream_context_create([
'http' => [
'ignore_errors' => true
],
]) );
更多信息请查看第二个答案。 here
更新
$url = 'https://html5andcss3.org/';
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n",
'ignore_errors' => true, //set to true for non 2XXX reponse codes
)
);
$context = stream_context_create($opts);
// Open the file using the HTTP headers set above
$file = file_get_contents($a, false, $context);//pass the variable $url
echo $file;