ajax和PHP遇到问题

时间:2019-06-29 01:25:04

标签: php ajax

我正在尝试在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'];

enter image description here

如您所见,我能够在第一步中打印该值,但是当我尝试再次获取URL的内容时,它给了我错误提示。

1 个答案:

答案 0 :(得分:1)

尝试下面的代码,我已经测试过并且可以正常工作。返回404 response <h1>Sorry This Page is Not Available Now</h1>,我还通过在浏览器中点击相同的URL验证了响应,因此它可以正常工作。

  

file_get_contents()停止显示非2xx状态代码的警告错误。
  您甚至只需要获取故障状态代码(例如404500)上的内容,因为您需要设置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;