file_get_contents() как много в этом слове, для ленивых кодеров слилось. Функция умеет открывать как локальные файлы, так и подгружать из интернетов. Еще всего одной строкой шлются GET-запросы на адреса вида site.ru/page.php?login=user&password=pass&i=10 Удобно!
Всеми любимая функция file_get_contents умеет слать POST-запросы. Поэтому в ряде случаев можно назвать cUrl ненужным.
Запрос можно слать как на свой сервак так и на сторонние.
Если не путаетесь в массиве, такое решение будет удобнее cUrl'а.
<?
#шлепаем массив с переменными, которые передадим в запросе
$my_array = array(
'login' => 'логин',
'password' => 'шесть звездочек'
);
#скукожим массив в кодированную строку (чтобы пробелы и прочие символы отправились правильно)
$will_send = http_build_query($my_array);
#создадим параметры контекста для функции
$to_send = array(
'http' => array(
'method' => 'POST', //назначаем метод POST (ну ни GET же)
'header' => 'Content-type: text/html', //добавим заголовок (хотя можно и без него)
'content' => $to_send, //так пихаем подготовленные переменные
)
);
$context = stream_context_create($to_send); //создание контекста
$vihlop = file_get_contents('http://site.ru/login.php', false, $context); //эпично (одной строкой) шлем запрос
echo $vihlop; //наблюдаем страницу, где мы залогинились (если кукисы не нужны)
?>
В целом нельзя канонически назвать cUrl ненужным, ведь file_get_contents() не умеет всего того, что умеет cUrl.
Для удобства можно запилить функцию или класс, через которую(ый) потом одной строкой посылать на сайты POST-запрос.
Еще из плюшек функции мне очень нравится работа с FTP. Еще бы, одна строка же.
<?php
$x = file_get_contents("ftp://k0ttee:password@ftp.site.ru/file.txt");
?>
Всякие HTTPS и FTPS тоже поддерживаются.
А вот протокол SFTP - нет, ибо основан на SSH и совсем другая опера.
P.S: вообще все есть в документации, а это - так, перепись для процеживания инфы сквозь мозги для лучшего запоминания.
Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
|