существуют ли механизмы, чтобы отключить функцию file_get_contents ()? - PullRequest
1 голос
/ 17 июля 2010

я использую функцию file_get_contents , чтобы получить данные с сайтов и сохранить их в базе данных. для меня будет очень неудобно, если однажды скрипт не будет работать.

Я знаю, что он может начать не работать, если они изменят структуру сайта, но теперь я боюсь, что, возможно, существуют механизмы для отключения работы этой функции, возможно, с сервера?

Я пытался найти документацию по этому поводу, но не могу получить, так что, может быть, вы мне поможете?

Спасибо

Ответы [ 3 ]

3 голосов
/ 17 июля 2010

Я знаю, что он может начать не работать, если они изменят структуру сайта, но сейчас я боюсь, что, возможно, существуют механизмы для отключения работы этой функции, может быть, с сервера?

Да, его можно отключить из php.ini с опцией allow_url_fopen.У вас есть и другие варианты, такие как расширение CURL .

Также обратите внимание, что вам нужно включить расширение openssl из php.ini.если вы собираетесь использовать функцию file_get_contents для чтения из защищенного протокола.

Таким образом, если file_get_contents отключено / заблокировано, вы можете перейти к CURL расширение.

2 голосов
/ 17 июля 2010

Есть как минимум две директивы конфигурации PHP, которые могут нарушить ваш скрипт:

  • Если allow_url_fopen отключено, то file_get_contents() не сможет получить файлы, которых нет на локальном диске.
    • т.е. он не сможет загружать удаленные страницы через HTTP.
    • Примечание: я видел, что эта опция отключена довольно часто
  • И, конечно же, с помощью disable_functions любая функция PHP может быть отключена.


Скорее всего, file_get_contents() сам когда-нибудь отключится ...

Но удаленная загрузка файлов ... Что ж, возможно, было бы целесообразно добавить альтернативный механизм загрузки в ваш скрипт, который бы использовал curl в случае, если allow_url_fopen отключено .

2 голосов
/ 17 июля 2010

Можно отключить определенные функции, используя disable_function .Кроме того, поддержка URL-адресов с функциями файловой системы , например file_get_contents, может быть отключена с помощью allow_url_fopen .Таким образом, есть вероятность, что file_get_contents может работать не так, как ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...