<Сильный> Wget
wget
is a linux command, not a PHP command, so to run this you woud need to use exec
, which is a PHP command for executing shell commands.
exec("wget --http-user=[user] --http-password=[pass] http://www.example.com/file.xml");
Это может быть полезно, если вы загружаете большой файл и хотите отслеживать прогресс, однако при работе со страницами, в которых вас интересует только контент, есть простые функции для этого.
Функция exec
включена по умолчанию, но может быть отключена в некоторых ситуациях. Параметры конфигурации для этого находятся в php.ini
, чтобы включить, удалить exec
из строки конфигурации disabled_functions
.
<Сильный> альтернатива
Используя file_get_contents
, мы можем получить содержимое указанного URL/URI. Когда вам просто нужно прочитать файл в переменной, это будет идеальной функцией для использования в качестве замены для завивки - следуйте за Синтаксис URI при создании URL-адреса.
// standard url
$content = file_get_contents("http://www.example.com/file.xml");
// or with basic auth
$content = file_get_contents("http://user:[email protected]/file.xml");
As noted by Sean the Bean
- you may also need to change allow_url_fopen
to true
in your php.ini to allow the use of a URL in this method, however, this should be true by default.
Если вы хотите сохранить этот файл локально, есть функция file_put_contents
, чтобы записать это в файл в сочетании с предыдущим, это может эмулировать загрузку файла:
file_put_contents("local_file.xml", $content);