Curl : Основни функции
06-02-2010
Наскоро ми трябваше скрипт който да симулира логване на скрипт като потребител и да изпраща "POST" заявки.Препоръчаха ми "библиотеката" Curl и ми стана интересно какви са му възможностите.В този урок ще ви покажа основните неща на библиотеката.

Винаги когато използваме Curl трябва да го инициализираме библиотеката с помощта на функцията curl_init:

$data = curl_init();


За да добавим опции към извличането на данни използваме curl_setopt();:
bool curl_setopt ( resource $ch , int $option , mixed $value )


Можете да видите всички опции на php.net curl_setopt.
С опцията CURLOPT_URL задаваме линк от който ще индексираме. Пример:
<?
$data = curl_init();
$link = "http://web-tourist.net";
curl_setopt($data, CURLOPT_URL, $link);
?>

Една от главните функции без която не можем да индексираме информацията е curl_exec(). За да работи горният пример трябва да добавим Curl_exec:

<?
$data = curl_init();
$link = "http://web-tourist.net";
curl_setopt($data, CURLOPT_URL, $link);
curl_exec($data);
curl_close($data); // Слага край да $data.
?>

Когато използваме тази библиотека задължително трябва да "затворим" скрипта с Curl_close($promenlive);

При горният код curl_exec ще върне резултат който няма да може да се присвоява на променлива, затова използваме опцията CURLOPT_RETURNTRANSFER:
<?
$data = curl_init();
$link = "http://web-tourist.net";
curl_setopt($data, CURLOPT_URL, $link);
curl_setopt($data, RETURNTRANSFER, true);
$info = curl_exec($data); //Присвояваме информацията от curl_exec на променливата $info
curl_close($data); // Слага край да $data.
echo $info;
?>


Една от яките функции на CURL е изпращането на POST заявки. Първо трябва да декларираме ,че ще ползваме POST заявка с
curl_setopt($data, CURLOPT_POST, 1);
,а съдържанието на полетата ги добавяме с CURLOPT_POSTFIELDS

<?
$data = curl_init();
$link = "http://web-tourist.net";
curl_setopt($data, CURLOPT_URL, $link);
curl_setopt($data, RETURNTRANSFER, true);
curl_setopt($data, CURLOPT_POST, 1);
curl_setopt($data, CURLOPT_POSTFIELDS, "user=web-tourist&b=parola");
$info = curl_exec($data); //Присвояваме информацията от curl_exec на променливата $info
curl_close($data); // Слага край да $data.
echo $info;
?>


В горният пример изпращаме съдържанието на 2 полета (user с държание "web-tourist" и парола "parola").

Можете да намерите още информация за curl на сайта на PHP.
Функция curl_setopt.

Урокът е авторски ;)


Следващ урок:

Curl : setopt функции


/ Трябва да сте регистриран за да напишете коментар /
От: What
15:42 16-03-2010
аз даже направих 3 бота с тази библиотека
и 3-те бачкаха даже много добре и бързо.
трябваше да намаля скоростта на бота за да спрат да ме банват :D
От: bama
12:03 23-04-2010
Това май не се потдържа в xampp ? Или е спряно.
От: vik96
13:20 24-04-2010
Нямам представа за Xampp,но в AppServ и Vertrigo работи на 6*
От: proba
12:26 27-11-2010
И в xampp можеш да си пуснеш curl от php.ini ;)
1