Я работаю со сценарием (который я не создавал изначально), который создает файл PDF с HTML-страницы. Проблема в том, что сейчас требуется очень много времени, например, 1-2 минуты. Предположительно, это работало нормально, но замедлилось в течение последних нескольких недель.PHP file_get_contents очень медленно при использовании полного url
Сценарий вызывает file_get_contents
на php-скрипте, который затем выводит результат в файл HTML на сервере и запускает приложение-генератор pdf в этом файле.
Я, кажется, сузил проблему до file_get_contents
на полном URL-адресе, а не на локальном пути.
Когда я использую
$content = file_get_contents('test.txt');
он обрабатывает почти мгновенно. Однако, если я использую полный URL-адрес
$content = file_get_contents('http://example.com/test.txt');
Для обработки требуется от 30 до 90 секунд.
Это не только наш сервер, но и медленный доступ к любому внешнему URL-адресу, например http://www.google.com. Я считаю, что сценарий вызывает полный URL-адрес, потому что есть необходимые строковые переменные запроса, которые не работают, если вы вызываете файл локально.
Я также пробовал fopen
, readfile
и curl
, и все они были так же медленными. Любые идеи о том, где искать, чтобы исправить это?
Когда я пытаюсь выполнить wget из командной строки, это также очень медленно. Он висит на разрешающем шаге. Какая-то проблема с DNS на сервере? – ecurbh
Может быть. Попробуйте использовать «хост» или «nslookup» (независимо от того, что доступно) и попытайтесь разрешить различные разные имена хостов из системы. –