Я недавно установил XAMPP. Настройка была простой, но я, кажется, не знаю, как правильно настроить, чтобы он мог общаться с внешним миром сети.
Независимо от того, как я пытаюсь прочитать внешний URL-адрес, он говорит мне, где остановиться.
(В PHP) Я пробовал простой маршрут file_get_contents. Когда это не удалось, кто-то указал мне на завиток. Я включил это в php.ini, но это тоже не удалось.
Я получаю очень бесполезное сообщение «Невозможно открыть файл»
Fatal error: Unable to open "https://earth.esa.int/documents/10174/1514862/Swarm_Level-2_TEC_Product_Description" in C:\xampp\htdocs\includes\PdfToText.phpclass:1665 Stack trace: #0 #2 {main} thrown in C:\xampp\htdocs\includes\PdfToText.phpclass on line 1665
Я знаю, что это похоже на ошибку с классом PdfToText (см. Выше), но это просто способ показать ошибку. Возьмите файл между кавычками, попробуйте загрузить и все нормально. Он не хочет открывать файлы из внешнего мира, что бы ни пробовали.
Я предполагаю, что это порт / прокси / что-то, но я весь день гуглил в stackoverflow и выходил из него, и я нигде не вижу той же проблемы.
Я просто попробовал это после вашего предложения: <pre> Предупреждение: file_get_contents (ns.nl): не удалось открыть поток: попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через определенный период времени, или установленное соединение не удалось из-за сбоя подключенного хоста ответить. </pre>
Я знаю, что это будет звучать как глупый вопрос, но «Вы подключены к Интернету»?
Подключиться сюда на том же компьютере, так что я так думаю :)
Более толковый вопрос "А вы в php_openssl активировали расширение php.ini"
Не такой уж и глупый вопрос, поскольку я предполагаю, что XAMPP явно не подключен к Интернету - он отлично читает локальные файлы.
Я обнаружил, что php_openssl закомментирован, поэтому я исправил это, перезапустил Apache и MySQL, но, увы, закончился той же ошибкой file_get_contents, что и выше.
Вы проверили журнал ошибок php на случай, если есть другая полезная информация об ошибке?
Как ни странно, не было каталога / logs, и поэтому файл php_error_log не существовал. Создав его, теперь созданный файл журнала повторяет текст ошибок, перечисленных в нем, поэтому нет дополнительной информации для сообщения.






Быстрая починка:
Найдите свой файл php.ini:
php -i | grep "Loaded Configuration File"
найдите allow_url_fopen и установите для него значение Вкл.
allow_url_fopen = On
Объяснение:
Эта ошибка возникает из-за того, что, когда вы используете такие функции, как file_get_contents или fopen, вы обрабатываете указатели файлов, что позволяет вам allow_url_fopen, это разрешить URL-адрес, создать соединение tcp и создать указатель сетевого файла на это соединение tcp, которое будет обрабатываться php как бы файлом.
По соображениям безопасности этот параметр отключен на некоторых установках.
Проверьте документы:
http://php.net/manual/en/filesystem.configuration.php
phpinfo (): загруженный файл конфигурации C: \ xampp \ php \ php.ini
Чуть ниже: «allow_url_include = Off» - установите для этого параметра значение «Вкл.», Перезапустите Apache и возникнет та же проблема. Верните его в положение Выкл.
file_get_contents('http://example.com/');работает?