【问题标题】:Having some issue with ajax and PHPajax 和 PHP 有一些问题
【发布时间】:2019-06-29 10:27:39
【问题描述】:

我正在尝试获取 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 的内容时,它给了我错误。

【问题讨论】:

  • 可以,但成功与否取决于($htmlcontents = file_get_contents($attrb);)$attrb的价值
  • 我收到错误( ! ) Warning: file_get_contents(
  • 在你的问题中提及错误,同时提供更多的错误细节
  • @SujeetAgrahari 我已经编辑了带有错误消息的问题。

标签: php ajax


【解决方案1】:

试试下面的代码,我测试过,它工作正常。返回一个404 response &lt;h1&gt;Sorry This Page is Not Available Now&lt;/h1&gt;,我还通过在浏览器中点击相同的网址来验证响应,所以它工作正常。

file_get_contents() 停止并显示非 2xx 状态代码的警告错误。
即使失败状态码可能是404500,您也只需要获取内容,为此您需要设置ignore_errors =&gt; 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;

【讨论】:

  • 如果我输入正确的 ULR,例如 html5andcss3.org。它正在打印空白页。第二件事,如果我将 URL 存储在变量中,它会再次显示错误消息,抱歉,此页面现在不可用。
  • @SwapnilRajja 确保在 URL 前加上 http://https://
  • 我正在调用If 条件内的 URL,但它不起作用。但如果我在If 条件之外调用它,它工作正常。但这不适用于变量。我必须手动输入 URL 地址。
  • 404 响应的相同错误我认为问题出在我从 ajax 获取数据的上述代码上。变量$attrb 返回空值(我的想法)。
  • 当我在另一个页面上检查您的代码时,它工作正常。我需要获取从 ajax 发送并在 PHP 变量 $attrb 中接收的 URL
猜你喜欢
  • 2016-05-25
  • 2011-06-23
  • 1970-01-01
  • 2011-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-01
  • 1970-01-01
相关资源
最近更新 更多