Имейте функцию (код ниже), чтобы проверить, что URL действительно существует, и столкнулся с тем, что не удается. Это работает отлично в браузере, хотя, поэтому мне очень любопытно Зачем этот URL не так, как он.
Я получаю ответ:
HTTP/1.1 400 Bad Request
content-length: 378
x-synthetic: true
expires: Thu, 01 Jan 1970 00:00:00 UTC
pragma: no-cache
cache-control: no-cache, must-revalidate
content-type: text/html; charset=UTF-8
connection: close
date: Sat, 25 Mar 2017 14:05:45 UTC
x-contextid: 1INsx8lY/G2fZ1ojZ
x-via: 1.1 echo105
<html>
<head>
<title>400 Bad Request</title>
<style> body { background-color: #F2F2F2; color: #3E3E3E; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; } pre { word-wrap: break-word; } </style>
</head>
<body>
<h1>400 Bad Request</h1>
<p><pre>1INsx8lY/G2fZ1ojZ @ Sat, 25 Mar 2017 14:05:45 GMT</pre>
<p><pre>SEC-43</pre>
<p><pre></pre>
</body>
</html>
Загадочный контекстный идентификатор и метка времени постоянно меняются, но в остальном я получаю одно и то же.
curl -i -X HEAD https://www.bergenadventistkirke.com
в терминале делает работа однако … но это только делает меня более смущенным …Я пытался найти «плохой запрос» и «SEC-43», но все, что я, кажется, проснулся, это куча результатов, которые показывают ту же ошибку HTML. Нажатие на них приводит к неправильным сертификатам, другим ошибкам или их перенаправлению в другое место.
Кто-нибудь знает, что здесь происходит?
Malware? Какая-то волшебная не браузерная блокировка трафика?
Код
<?php
$c = curl_init();
curl_setopt_array($c, [
CURLOPT_URL => 'https://www.bergenadventistkirke.com',
CURLOPT_HEADER => true,
CURLOPT_FOLLOWLOCATION => true,
]);
ob_start();
curl_exec($c);
curl_close($c);
header('content-type: text/plain; charset=utf-8');
echo ob_get_clean();
Они проверяют на User-Agent
заголовок и возвращение обратно HTTP 400 Bad Request
если они не видят один. curl
в командной строке устанавливает пользовательский агент curl/7.46.0
Вот почему это работает.
Пытаться:
$c = curl_init();
curl_setopt_array($c, [
CURLOPT_URL => 'https://www.bergenadventistkirke.com',
CURLOPT_HEADER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_USERAGENT => "curl/7.46.0"]);
ob_start();
curl_exec($c);
curl_close($c);
header('content-type: text/plain; charset=utf-8');
echo ob_get_clean();
Других решений пока нет …