Парсинг 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.

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

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

JanleF
8 месяцев назад

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

StepFoush
8 месяцев назад

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

JanleF
7 месяцев назад

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

JanleF
7 месяцев назад

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

bemnite
bemnite
7 месяцев назад

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

AlvinCox
AlvinCox
7 месяцев назад

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

CharlesGOP
CharlesGOP
7 месяцев назад

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

Waltonplort
Waltonplort
7 месяцев назад

cialis c20 pills buy viagra online buy viagra in australia

BarryNaW
BarryNaW
6 месяцев назад

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

Jefferykap
Jefferykap
6 месяцев назад

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

Marvinerulk
Marvinerulk
6 месяцев назад

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

Marvinerulk
Marvinerulk
6 месяцев назад

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

Marvinerulk
Marvinerulk
6 месяцев назад

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

Marvinerulk
Marvinerulk
6 месяцев назад

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

Marvinerulk
Marvinerulk
6 месяцев назад

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

Marvinerulk
Marvinerulk
6 месяцев назад

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

Marvinerulk
Marvinerulk
6 месяцев назад

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

Marvinerulk
Marvinerulk
6 месяцев назад

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

Marvinerulk
Marvinerulk
6 месяцев назад

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

AlfredAdvog
AlfredAdvog
6 месяцев назад

viagra
cialis for sale in australia

AlfredAdvog
AlfredAdvog
6 месяцев назад

cheap viagra
order viagra plus

AlfredAdvog
AlfredAdvog
6 месяцев назад

viagra without a doctor prescription
buy cialis professional

AlfredAdvog
AlfredAdvog
6 месяцев назад

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

AlfredAdvog
AlfredAdvog
6 месяцев назад

generic viagra 100mg
viagra for sale in the uk

AlfredAdvog
AlfredAdvog
6 месяцев назад

viagra online
buy viagra super active

AlfredAdvog
AlfredAdvog
6 месяцев назад

buy viagra
can you buy viagra boots

AlfredAdvog
AlfredAdvog
6 месяцев назад

viagra pills
viagra tablets sale uk

DennisLof
DennisLof
6 месяцев назад

canadian cialis order cialis here
how to take cialis

DennisLof
DennisLof
6 месяцев назад

low cost cialis buy here
cialis headaches afterwards

DonaldTwill
DonaldTwill
6 месяцев назад

viagra side effects sildenafil
female viagra

DonaldTwill
DonaldTwill
6 месяцев назад

cost of viagra 100mg walmart viagra
cialis vs viagra

JosephDiona
JosephDiona
5 месяцев назад

buy viagra cialis samples of cialis
is generic cialis safe

JosephDiona
JosephDiona
5 месяцев назад

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

Thomasreeld
Thomasreeld
5 месяцев назад

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

Thomasreeld
Thomasreeld
5 месяцев назад

cheapest viagra: viagra prices levitra for sale no prescription

JohnnieQuabs
JohnnieQuabs
5 месяцев назад

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

JohnnieQuabs
JohnnieQuabs
5 месяцев назад

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

Michaeldus
Michaeldus
5 месяцев назад

cheapest cialis buy cialis

Michaeldus
Michaeldus
5 месяцев назад

how to get cialis samples cialis without doctor prescription

Jeffreymax
Jeffreymax
4 месяцев назад

cialis pills for sale: cialis coupon

Jeffreymax
Jeffreymax
4 месяцев назад

switching from tamsulosin to cialis: cialis generic

treantinc
treantinc
4 месяцев назад

Cialis Kaufen Wien [url=https://cheapcialisll.com/]where to buy cialis online forum[/url] Precio De Cialis Generico En Aguascalientes Cheap Cialis Comment Prendre Le Xenical

JamieSog
JamieSog
4 месяцев назад

cheapest viagra: viagra pills
wikigogy.org

JamieSog
JamieSog
4 месяцев назад

generic viagra 100mg: viagra generic
wikigogy.org

Justinrom
4 месяцев назад

liquid cialis source reviews: buy cialis online
warrensburgfmc.org buy cialis online

Justinrom
4 месяцев назад

real cialis without a doctor’s prescription: generic cialis tadalafil 20mg
warrensburgfmc.org mail order prescription drugs from canada

Williekek
Williekek
4 месяцев назад

http://stylid.org/ – buy erectile dysfunction pills online

Charlesfette
Charlesfette
3 месяцев назад

viagra discount: viagra prescription online pharmacy viagra

CarlosVem
CarlosVem
3 месяцев назад

generic for valtrex buy without a prescription valtrex medicine price