php curl не работает, возвращает пустую страницу, как мне эмулировать настоящий браузер

Я хочу получить некоторые подробности с веб-сайта, мой код работает нормально в wampserver, но когда я загрузил файл на настоящий сервер, я не получил никакого результата, он показывает мне пустую страницу, вот мой код.

    <?php
error_reporting(E_ALL);

$htm = my_curl($url);
echo $htm;
$dat = file_get_contents('cookies.txt');

echo "<pre>";
echo PHP_EOL . "<b>$url</b>";
echo PHP_EOL . "<i>$dat</i>";
echo PHP_EOL;function my_curl( $url, $timeout=5, $error_report=TRUE)
{
$curl = curl_init();$header[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: timeout=5, max=100";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = ""; // BROWSERS USUALLY LEAVE BLANK

// SET THE CURL OPTIONS - SEE http://php.net/manual/en/function.curl-setopt.php
curl_setopt( $curl, CURLOPT_URL,            $url  );
curl_setopt( $curl, CURLOPT_USERAGENT,      'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'  );
curl_setopt( $curl, CURLOPT_HTTPHEADER,     $header  );
curl_setopt( $curl, CURLOPT_REFERER,        'http://www.google.com'  );
curl_setopt( $curl, CURLOPT_ENCODING,       'gzip,deflate'  );
curl_setopt( $curl, CURLOPT_AUTOREFERER,    TRUE  );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, TRUE  );
curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, TRUE  );
curl_setopt( $curl, CURLOPT_COOKIEFILE,     'cookies.txt' );
curl_setopt( $curl, CURLOPT_COOKIEJAR,      'cookies.txt' );
curl_setopt( $curl, CURLOPT_TIMEOUT,        $timeout  );$htm = curl_exec($curl);

// ON FAILURE HANDLE ERROR MESSAGE
if ($htm === FALSE)
{   echo 'HELO';
if ($error_report)
{echo 'HELOs';
$err = curl_errno($curl);
$inf = curl_getinfo($curl);
echo "CURL FAIL: $url TIMEOUT=$timeout, CURL_ERRNO=$err";
var_dump($inf);
}
curl_close($curl);
return FALSE;
}

// ON SUCCESS RETURN XML / HTML STRING
curl_close($curl);
return $htm;
}

Я проверил свою конфигурацию php, кажется, все в порядке. Я не смог найти ответа ни в одном другом посте в переполнении стека.

Ошибка:

CURL FAIL: http://14.139.236.46:7001/Forms/Student/PrintReportCard.aspx?rollno=11013001027&СЭМ = 07 TIMEOUT = 5, CURL_ERRNO = 7array (22) {[«url»] => string (86) «http://14.139.236.46:7001/Forms/Student/PrintReportCard.aspx?rollno=11013001027&СЭМ = 07«[» content_type «] => NULL [» http_code «] => int (0) [» header_size «] => int (0) [» request_size «] => int (0) [» filetime «] => int (-1) [«ssl_verify_result»] => int (0) [«redirect_count»] => int (0) [«total_time»] => float (0) [«namelookup_time»] => float (0.001099) [» connect_time «] => float (0) [» pretransfer_time «] => float (0) [» size_upload «] => float (0) [» size_download «] => float (0) [» speed_download «] => float (0) [«speed_upload»] => float (0) [«download_content_length»] => float (-1) [«upload_content_length»] => float (-1) [«starttransfer_time»] => float (0) [ «redirect_time»] => float (0) [«certinfo»] => array (0) {} [«redirect_url»] => string (0) «»}

0

Решение

Я думаю, что ваш URL-адрес недействителен — на данный момент ваш URL-адрес выглядит примерно так:

http://14.139.236.46:7001/Forms/Student/PrintReportCard.aspxrollno=123&sem=456

Хотя я предполагаю, что это должно быть:

http://14.139.236.46:7001/Forms/Student/PrintReportCard.aspx?rollno=123&sem=456

Добавить ? между aspx и rollno и попробуйте снова

0

Другие решения

Попробуйте установить порт отдельно.

curl_setopt($ch, CURLOPT_PORT, 7001);

0

По вопросам рекламы [email protected]