Я использую функцию file_get_contents для захвата данных с сайтов и хранения данных в базе данных. это будет очень неудобно для меня, если однажды скрипт начнет работать.
Я знаю, что он может начать работать, если они меняют структуру сайта, но теперь я боюсь, что, возможно, есть механизмы, чтобы отключить работу этой функции, возможно, от сервера?
Я пытался найти документацию об этом, но не могу получить, так что, может быть, вы мне поможете?
благодаря
Я знаю, что он может начать работать, если они меняют структуру сайта, но теперь я боюсь, что, возможно, есть механизмы, чтобы отключить работу этой функции, возможно, от сервера?
Да, он может быть отключен из php.ini с параметром allow_url_fopen
. У вас есть другие возможности, такие как расширение CURL .
Также обратите внимание, что вам нужно будет включить расширение openssl из php.ini, если вы собираетесь использовать функцию file_get_contents
для чтения из защищенного протокола.
Поэтому в случае, если file_get_contents
отключен, вы можете перейти на расширение CURL .
Можно отключить определенные функции с помощью функции disable_function . Кроме того, поддержка URL-адресов с функциями файловой системы, такими как file_get_contents
может быть отключена с помощью allow_url_fopen . Таким образом, вероятность того, что file_get_contents
может работать не так, как ожидалось, в один прекрасный день.
Есть как минимум две директивы конфигурации PHP, которые могут нарушить ваш скрипт:
allow_url_fopen
отключен, то file_get_contents()
не сможет извлекать файлы, которые не находятся на локальном диске
disable_functions
любая функция PHP может быть отключена. Шансы довольно низкие, что file_get_contents()
никогда не будет отключен …
Но загрузка с удаленным файлом … Ну, может быть разумно добавить альтернативный маканизм загрузки в ваш скрипт, который будет использовать завиток, если allow_url_fopen
отключен.