Я тестирую PHP-скрипт для очистки удаленного сайта с помощью библиотеки Simple HTML DOM Parser. Код раньше работал нормально; однако сегодня это внезапно прекратилось.
<?php
require_once 'backend/connector.php';
require_once 'table_access/simplehtmldom_1_5/simple_html_dom.php';
ini_set("display_errors", 1);
error_reporting(E_ALL);
echo file_get_html("http://www.google.com");
?>
Ошибка, которую это дает:
Предупреждение:
file_get_contents (http://www.google.com):
не удалось открыть поток: истекло время ожидания соединения
/home/peppyoil/public_html/sandboxassets/engines/table_access/simplehtmldom_1_5/simple_html_dom.php
на линии 75
Я не понимаю, почему время ожидания истекло, несмотря на то, что удаленный сайт очень доступен при доступе через браузер. Я бы понял, что это говорит о том, что соединение отказано или что-то в этом роде, но что может объяснить время ожидания?
Я попытался с помощью cURL:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.google.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXY, $proxy); // $proxy is ip of proxy server
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$httpCode = curl_getinfo($ch , CURLINFO_HTTP_CODE); // this results 0 every time
$response = curl_exec($ch);
if ($response === false) $response = curl_error($ch);
echo stripslashes($response);
curl_close($ch);
?>
Не сработало на этот раз либо выкинул следующую ошибку вместо этого:
Соединение отключено через 10001 миллисекунду
Тестовый скрипт, приведенный выше, находится по адресу http://www.peppyburro.com/sandboxassets/engines/test1.php
Обновление 2: Только что проверил мой порт 80 и нашел это:
Исходящие порты 80, 443, 587 и 465 для вашей учетной записи заблокированы Причина
для блока порта: во время наших регулярных проверок мы обнаружили вредоносные
файлы в вашем аккаунте, которые могут быть заражены вредоносным ПО.
Может ли это быть как-то связано с таймаутами?
Исходящие порты 80, 443, 587 и 465 для вашей учетной записи заблокированы Причина блокировки порта: во время наших регулярных проверок мы обнаружили в вашей учетной записи вредоносные файлы, которые могут быть заражены вредоносными программами.
Выше уже сказано, что ваш хостинг-провайдер обнаружил, что контент вашего сайта является вредоносным.
Это потому, что то, что вы пытаетесь достичь, похоже на прокси-сервер и входит в раздел сайтов перезаписи URL. поэтому вы не можете разместить этот скрипт, так как он может использоваться для прямого доступа к контенту, заблокированному в вашем регионе, но не в регионе вашего хостинг-провайдера.
Надеюсь это поможет.
Других решений пока нет …