Парсинг PHP библиотека CURL

Парсинг PHP: Библиотека CURL

В данном уроке мы разберем основы работы с библиотекой CURL. Эта библиотека является намного более продвинутой альтернативой функции file_get_contents. В отличие от нее, CURL позволяет работать с куками, с заголовками, позволяет отправлять формы и переходить по редиректам.

Библиотека CURL не требует дополнительных файлов, и ее не нужно подключать. По факту CURL уже давно не библиотека, так как уже давно включена в PHP сборку. Но все же в некоторых версиях её может и не быть, поэтому лучше проверить подключение CURL в файле php.ini

Для начала мы сделаем простой запрос, который просто достает данные, как это делает file_get_contents.

Есть несколько обязательных функций для работы с CULR.

curl_init() – инициализирует сеанс. Работу этой функции, в дальнейшем, нужно будут передавать в другие функции, поэтому желательно записать ее в переменную. $curl = curl_init() .

curl_setopt() – это основная функция, которая обрабатывает CURL запросы. В зависимости от переданных параметров, функция выполняет разную работу.

curl_setopt($curl, CURLOPT_URL, 'http://prog-time.ru') – указываем адрес страницы. Первый параметр передает работу функции curl_init() . Вторым параметром передается специальная константа. Третий параметр – url страницы.

curl_exec($curl) – выполняем запрос. Эта часть кода прописывается в самом конце, после всех правил.e

Вот код который обязательно должен быть прописан :

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $url);
curl_exec($curl);

Три функции вместо одно. Вам кажется что это наоборот усложняет код, но дальше вы узнаете почему CURL лучше.

Запись результата в переменную

По стандарту CURL всю полученную информацию выводит на эран. Для того чтобы вывести данные на экран, пропишем следующее

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

Первый параметр передает работу функции curl_init() . Вторым параметром передается специальная константа. Третий параметр – 1, это сравнимо со значением true.

Так же нужно записать работу функции curl_exec в переменную. Например так.

$result = curl_exec($curl);

Переход по редиректам

Некоторые страницы сайтов содержат редиректы, которые перекидывают пользователя на другие страницы. Если вы будете парсить такие страницы функцией file_get_contents, она не станет переходить по редиректам и вернет пустую страницу.

И здесь мы получаем первую особенность библиотеки CURL. У нее есть специальная константа для функции curl_setopt() –
CURLOPT_FOLLOWLOCATION.

Записывается это так:

 curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 

Если последним параметром вы передадите true, функция будет переходить по всем редиректам и остановится только когда пройдет последний.

Но бывают случаи когда редиректов слишком много и нам нужно остановиться на определенном. Для этого нужно добавить дополнительную строчку кода.

 curl_setopt($curl,  CURLOPT_MAXREDIRS , 3);

Последним параметром передается количество редиректов.

В этой записи я вам показал стандартный код, который используют чаще всего. Теперь давайте немного улучшим наш код, записав его в функцию.

function parser($url){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
return $result;
}

В следующей записи, разберем дополнительные условия для работы CURL.

На этом всё!
Если у вас есть вопросы, пишите их в нашей группе - https://vk.com/progtime
Вы так же можете разместить свой вопрос на нашем форуме, где другие программисты смогут вам помочь в решение вашей задачи - https://vk.com/prog_time
В ней мы делимся своим опытом с другими начинающими программистами, поэтому обязательно ответим на ваш вопрос.
Так же прокачивайте свои навыки на нашем канале - https://www.youtube.com/c/ProgTime

41
Оставить комментарий

avatar
41 Цепочка комментария
0 Ответы по цепочке
0 Последователи
 
Популярнейший комментарий
Цепочка актуального комментария
38 Авторы комментариев
JeffreymaxMichaeldusMichaeldusJohnnieQuabsJohnnieQuabs Авторы недавних комментариев
  Подписаться  
новее старее большинство голосов
Уведомление о
StepFoush
Гость

Tinidazol [url=http://apcialisle.com/#]Buy Cialis[/url] Low Cost Viagra Cialis Oracea

JanleF
Гость

Clomid Diamicron [url=http://apcialisle.com/#]Cialis[/url] Order Accutane From Canada generic cialis canada Viagra Kaufen Cialis Bestellen

StepFoush
Гость

Is Viamedic Legitimate [url=https://apcialisle.com/#]buy online cialis[/url] Keflex Fever Blister Cialis Avis Cialis En Ligne

JanleF
Гость

Buy Amitriptyline [url=https://buyciallisonline.com/#]legit cialis online[/url] Cialis Extra Super buy liquid cialis online Cephalexin Dose For Uti

JanleF
Гость

Ciprofloaxin And Amoxicillin [url=https://abcialisnews.com/#]Cialis[/url] Amoxicillin Reaction In Infants cialis generic cost Cialis Viagra Torino

bemnite
Гость
bemnite

viagra buy now https://canadianpharmacystorm.com viagra cialis buy online

AlvinCox
Гость
AlvinCox

viagra online buy india http://tadmedz.com buy viagra in ottawa

CharlesGOP
Гость
CharlesGOP

is there a generic cialis available in the us http://cialisxtl.com order a viagra online

Waltonplort
Гость
Waltonplort

cialis c20 pills buy viagra online buy viagra in australia

BarryNaW
Гость
BarryNaW

cheap generic levitra https://edpillsphrm.com cialis canada cheapest

Jefferykap
Гость
Jefferykap

viagra without a prescription https://www.sildwithdoctorprescription.com cheap cialis online pharmacy

Marvinerulk
Гость
Marvinerulk

cheap levitra india http://alexa24ph.com – generic viagra viagra sale europe

Marvinerulk
Гость
Marvinerulk

cheap cialis and levitra http://aralenph.com – alaren online cialis pills what are for

Marvinerulk
Гость
Marvinerulk

order cialis online uk http://kaletra24.com – kaletra edu buy viagra allowed html tags

Marvinerulk
Гость
Marvinerulk

cialis sale london http://aralenph.com – buy alaren generic buy cialis online london

Marvinerulk
Гость
Marvinerulk

cialis price http://zithazi.com – generic zithromax buy cialis mastercard

Marvinerulk
Гость
Marvinerulk

buy levitra 20mg http://tadal24ph.com – viagra vs cialis vs levitra viagra no prescription

Marvinerulk
Гость
Marvinerulk

how to order cialis online no prescription http://alexa24ph.com – viagra prices buy viagra and cialis online

Marvinerulk
Гость
Marvinerulk

discount prices on cialis http://tadal24ph.com – cialis coupon cialis 2.5mg pills

Marvinerulk
Гость
Marvinerulk

buy viagra professional online http://zithazi.com – zithromax online buy discount cialis

AlfredAdvog
Гость
AlfredAdvog

viagra
cialis for sale in australia

AlfredAdvog
Гость
AlfredAdvog

cheap viagra
order viagra plus

AlfredAdvog
Гость
AlfredAdvog

viagra without a doctor prescription
buy cialis professional

AlfredAdvog
Гость
AlfredAdvog

viagra without a doctor prescription
where to buy cialis online in canada

AlfredAdvog
Гость
AlfredAdvog

generic viagra 100mg
viagra for sale in the uk

AlfredAdvog
Гость
AlfredAdvog

viagra online
buy viagra super active

AlfredAdvog
Гость
AlfredAdvog

buy viagra
can you buy viagra boots

AlfredAdvog
Гость
AlfredAdvog

viagra pills
viagra tablets sale uk

DennisLof
Гость
DennisLof

canadian cialis order cialis here
how to take cialis

DennisLof
Гость
DennisLof

low cost cialis buy here
cialis headaches afterwards

DonaldTwill
Гость
DonaldTwill

viagra side effects sildenafil
female viagra

DonaldTwill
Гость
DonaldTwill

cost of viagra 100mg walmart viagra
cialis vs viagra

JosephDiona
Гость
JosephDiona

buy viagra cialis samples of cialis
is generic cialis safe

JosephDiona
Гость
JosephDiona

viagra or cialis walgreens price for cialis 20mg
generic cialis coming out

Thomasreeld
Гость
Thomasreeld

viagra cost per pill: viagra prescriptions over internet buy cialis online with no prescription

Thomasreeld
Гость
Thomasreeld

cheapest viagra: viagra prices levitra for sale no prescription

JohnnieQuabs
Гость
JohnnieQuabs

real cialis without a doctor’s prescription viagra without doctor prescription pet meds without vet prescription canada onlinepharmacyero.com

JohnnieQuabs
Гость
JohnnieQuabs

pet meds without vet prescription amoxicillin without a doctor’s prescription buy prescription drugs from canada onlinepharmacyero.com

Michaeldus
Гость
Michaeldus

cheapest cialis buy cialis

Michaeldus
Гость
Michaeldus

how to get cialis samples cialis without doctor prescription

Jeffreymax
Гость
Jeffreymax

cialis pills for sale: cialis coupon