Intereting Posts
Отправка большого файла с клиента на сервер, правильно ли моя логика? Групповые страницы из одной колонки Перекрывающая ассоциация сущностей, вызывающая ошибки внешнего ключа базы данных при удалении объекта Подсчет значений из массива Ограничение данных при вставке MySQL DB обфускация или шифрование некоторых текстовых данных в PHP Как повернуть различные данные в дни недели в php Сохранить массив в базе данных mysql Можем ли мы опубликовать значение кнопки «Непроверенная радиостанция»? Функция PostGIS для объединения геометрии LINE вместе? Серийный комм с PHP на Windows onbeforeprint () и onafterprint () эквивалент для браузеров без IE Преобразование HTML TABLE в HTML5 TABLE с помощью CSS и по умолчанию JWT API с Laravel, не может читать заголовок обновления токена на клиенте Как добавить пользовательский столбец в сетку категорий пользовательского типа сообщения?

fopen не работает на моем сервере

Он отлично работает на локальном хосте с Xampp, но когда я пытаюсь его на своем сервере (host-ed.net), fopen не может открыть какой-либо URL-адрес, он работает только для файлов без http.

<?php $file="http://www.google.es"; $gestor = fopen($file, "r") or die ("Nothing"); ?> 

На моем сервере с этим кодом отображается Nothing. Может быть что-нибудь на php.ini?

EDIT: В php.ini: allow_url_fopen = On

EDIT: Это решение. Мой сервер отключил его, но теперь он включен. Спасибо за ответы.

fopen не может открыть какой-либо URL-адрес

Проверьте значение параметра allow_url_fopen php.ini :

 var_dump(ini_get('allow_url_fopen')); 

Вероятно, это неверно. Вам нужно поговорить с вашим веб-хостом или попробовать другой метод. Mabye CURL включен?

Вы также должны проверить значения error_reporting и display_errors . PHP должен был громко жаловаться на то, что не смог открыть URL-адрес. Вы захотите превратить их обоих во время разработки кода, чтобы вы могли понять, что пойдет не так просто.

Найдите allow-url-fopen в своем PHP.ini.

http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen

Разрешение на открытие URL-адресов с помощью fopen контролируется настройкой php.ini allow_url_fopen . Вы можете увидеть свой текущий параметр, используя phpinfo() который выгрузит html-документ, содержащий все настройки вашего сервера.

Как утверждает http://php.net/manual/en/function.fopen.php ,

Если имя файла имеет форму «схема: // …», предполагается, что URL-адрес и PHP будут искать обработчик протокола (также известный как обертка) для этой схемы. Если никакие обертки для этого протокола не зарегистрированы, PHP выпустит уведомление, чтобы помочь вам отслеживать потенциальные проблемы в вашем скрипте, а затем продолжить, как будто filename указывает обычный файл.

Поэтому я предполагаю, что для url не зарегистрировано, и php рассматривает это как обычное имя файла, которого не существует.

Попробуйте Curl, он будет работать, если он установлен на этом веб-сервере.

У вас есть бесплатная учетная запись? Большинство служб хостинга ограничивают исходящее соединение для бесплатных учетных записей для предотвращения злоупотреблений. Попробуй это:

 $fp = fsockopen("some.alive.site", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { echo "Everything is OK"; fclose($fp); } 

Если вы увидите сообщение об ошибке – вам не разрешено выполнять исходящие подключения.

Если вы используете PHP-FPM, проверьте файлы конфигурации в pool.d/ . Пулы PHP-FPM могут переопределять настройки php, используя php_admin_flag , php_admin_value , php_flag или php_value . (Мы столкнулись с этим на Ubuntu 16 vps)