Возникли проблемы с ajax и PHP - PullRequest
1 голос
/ 29 июня 2019

Я пытаюсь получить данные ajax в переменной PHP. Код работает нормально, и я могу получить данные ajax в переменной PHP.

Мой вопрос: могу ли я снова использовать переменную 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 Ответ

1 голос
/ 29 июня 2019

Попробуйте приведенный ниже код, я тестировал, и он работает.Возвращая 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
    ],
]) );

Дополнительная информациявзгляните на этот вопрос, второй ответ. здесь

Обновление

$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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...