использования cURL вместе с PHP

Добавил: WorldPad, 2012-04-16 06:31:56. Просмотров: 2387. Категория: Уроки PHP

использования cURL вместе с PHP

 

cURL и его расширение для PHP libcURL являются очень полезными инструментами при решении таких задач, как имитация веб браузера, отправка форм или регистрация на веб сервисе. В данном уроке мы рассмотрим несколько интересных применений cURL совместно с PHP.

 

Так же в curl есть возможность имитации браузера.

Для этого достаточно сделать так:

curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/3000');

 

Узнать больше о curl можно в разделе функции PHP. 

Замена функции file_get_contents() на cURL

Функция file_get_contents() очень полезная, но на многих хостингах она отключена. С помощью cURL можно написать функцию, которая будет работать в точности как file_get_contents().

function file_get_contents_curl($url) {

	$ch = curl_init();

curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Устанавливаем параметр, чтобы curl возвращал данные, вместо того, чтобы выводить их в браузер.
curl_setopt($ch, CURLOPT_URL, $url);

$data = curl_exec($ch);
curl_close($ch);

return $data;
}


Удалёная загрузка изображения с помощью cURL

Данная функция может быть очень полезна: задаем ей URL страницы и она сохраняет все изображения с нее на вашем сервере.

function getImages($html) {
$matches = array();
$regex = '~http://somedomain.com/images/(.*?)\.jpg~i';
preg_match_all($regex, $html, $matches);
foreach ($matches[1] as $img) {
saveImg($img);
}
}

function saveImg($name) {
$url = 'http://somedomain.com/images/'.$name.'.jpg';
$data = get_data($url);
file_put_contents('photos/'.$name.'.jpg', $data);
}

$i = 1;
$l = 101;

while ($i < $l) {
$html = get_data('http://somedomain.com/id/'.$i.'/');
getImages($html);
$i += 1;
}

Загрузка через FTP с помощью cURL

PHP имеет библиотеку FTP library, но также можно использовать cURL для загрузки файлов на FTP сервер.

// Открываем файл
$file = fopen("/path/to/file", "r");

// URL содержит большую часть нужной информации
$url = "ftp://username:password@mydomain.com:21/path/to/new/file";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Устанавливаем опции
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize("/path/to/file"));

// Устанавливаем режим ASCII (то есть - файл текстовой)
curl_setopt($ch, CURLOPT_FTPASCII, 1);

$output = curl_exec($ch);
curl_close($ch);