Həqiqi praktik nümunə: IP ünvanını dəyişdirmək üçün marşrutlaşdırıcını (modemi) yenidən başlatmalısınız. Bunu etmək üçün sizə lazımdır: marşrutlaşdırıcıya daxil olun, texniki xidmət səhifəsinə keçin və "Yenidən başladın" düyməsini basın. Bu hərəkəti bir neçə dəfə yerinə yetirmək lazımdırsa, prosedur təkrarlanmalıdır. Razılaşın, bu rejimi hər dəfə əl ilə etmək istəmirsiniz. cURL bütün bunları avtomatlaşdırmağa imkan verir. Yalnız bir neçə cURL əmri ilə siz avtorizasiya əldə edə və marşrutlaşdırıcıda tapşırığı tamamlaya bilərsiniz.
- cURL əmr satırında veb saytlardan məlumat almaq üçün faydalıdır.
Bunlar. cURL-dən istifadə halları olduqca realdır, baxmayaraq ki, əksər hallarda cURL öz proqramları üçün istifadə edən proqramçılara lazımdır.
CURL bir çox protokolları və avtorizasiya üsullarını dəstəkləyir, faylları ötürə bilir, kukilərlə düzgün işləyir, SSL sertifikatlarını, proksiləri və s. dəstəkləyir.
PHP və komanda xəttində cURL
Biz cURL-dən iki əsas şəkildə istifadə edə bilərik: PHP skriptlərində və komanda xəttində.
Serverdə PHP-də cURL-i aktivləşdirmək üçün php.ini faylındakı sətri şərhdən çıxarmalısınız.
Extension=php_curl.dll
Və sonra serveri yenidən başladın.
Linux-da siz curl paketini quraşdırmalısınız.
Debian, Ubuntu və ya Linux Mint-də:
$ sudo apt-get install curl
Fedora, CentOS və ya RHEL-də:
$ sudo yum curl quraşdırın
PHP-də və komanda xəttində istifadə fərqini aydın görmək üçün eyni tapşırıqları iki dəfə yerinə yetirəcəyik: əvvəlcə PHP skriptində, sonra isə komanda xəttində. Çalışaq ki, çaşqınlıq olmasın.
cURL istifadə edərək məlumatların alınması
PHP-də cURL istifadə edərək məlumatların alınması
PHP-də nümunə:
Hər şey çox sadədir:
$target_url- bizi maraqlandıran saytın ünvanı. Sayt ünvanından sonra iki nöqtə qoyub port ünvanını əlavə edə bilərsiniz (port standartdan fərqlidirsə).
curl_init- yeni seansı işə salır və nümunəmizdə dəyişənə təyin edilmiş sapı qaytarır $ch.
Sonra sorğunu cURL funksiyası ilə yerinə yetiririk curl_exec, ona parametr kimi deskriptor ötürülür.
Hər şey çox məntiqlidir, lakin bu skript icra edildikdə, saytın məzmunu səhifəmizdə görünəcək. Bəs məzmunu göstərmək istəmiriksə, lakin onu dəyişənə yazmaq istəsək (sonradan emal və ya təhlil üçün).
Skriptimizə bir az əlavə edək:
0) ( echo "Curl xətası: " . curl_error($ch); ) curl_close($ch); ?>
Bizim bir xəttimiz var curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);.
curl_setopt- variantları təyin edir. Seçimlərin tam siyahısını bu səhifədə tapa bilərsiniz:
Qonaqlardan gizlədilib
$cavab_data = curl_exec($ch);
İndi skript dəyəri $response_data dəyişəninə təyin edilir, onunla sonrakı əməliyyatlar yerinə yetirilə bilər. Məsələn, onun məzmununu göstərə bilərsiniz.
Dikişlər
Əgər (curl_errno($ch) > 0) ( echo "Qıvrılma xətası: " . curl_error($ch); )
xətaların baş verməsi halında sazlama üçün xidmət edir.
Komanda xəttində cURL istifadə edərək məlumatların alınması
Komanda xəttində sadəcə yazın
əvəzinə harada mi-al.ru- veb saytınızın ünvanı.
Nəticəni ekranda göstərməkdənsə, məlumatları dəyişənə köçürmək lazımdırsa, bunu edin:
Temp="curl mi-al.ru"
Bununla belə, bəzi məlumatlar hələ də göstərilir:
Onların göstərilməsinin qarşısını almaq üçün açarı əlavə edin -s:
Temp="curl -s mi-al.ru"
Nə yazıldığını görə bilərsiniz:
Echo $temp | az
Əsas və HTTP autentifikasiyasıDoğrulama, sadəcə olaraq, istifadəçi adı və parolun daxil edilməsidir.
Əsas autentifikasiya server tərəfi identifikasiyasıdır. Bunun üçün iki fayl yaradılır: .htaccess Və .htpasswd
.htaccess faylının məzmunu bu kimi bir şeydir
AuthName "Yalnız qeydiyyatdan keçmiş istifadəçilər üçün!" AuthType Basic etibarlı istifadəçi tələb edir AuthUserFile /home/freeforum.biz/htdocs/.htpassw
.htpasswd faylının məzmunu belədir:
Mial:CRdiI.ZrZQRRc
Bunlar. giriş və parol hash.
Parolla qorunan qovluğa daxil olmağa çalışdığınız zaman brauzer belə bir şey göstərəcək:
HTTP identifikasiyası veb-saytdakı formada bir giriş və şifrə daxil etdiyimiz haldır. Məhz bu identifikasiya poçta, forumlara və s. daxil olduqda istifadə olunur.
Əsas cURL identifikasiyası (PHP)
Veb saytı var
Qonaqlardan gizlədilib
Gəlin ilkin skriptimizi sınayaq:
0) ( echo "Curl xətası: " . curl_error($ch); ) else ( echo $response_data; ) curl_close($ch); ?>
Skript səhv olmadığına inansa da, nəticəni heç bəyənmirik:
İki sətir əlavə edin:
Curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, "ru-board:ru-board");
İlk sətirdə identifikasiya növünü təyin etdik - əsas. İkinci sətirdə iki nöqtə ilə ayrılmış ad və parol var (bizim vəziyyətimizdə ad və parol eynidir - ru-board). Belə çıxdı:
0) ( echo "Curl xətası: " . curl_error($ch); ) else ( echo $response_data; ) curl_close($ch); ?> Gəlin cəhd edək: 30946 Əla! Əsas cURL identifikasiyası (komanda xəttində) Eyni şeyi bir sətir ilə komanda xəttində əldə etmək olar: curl -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/
Mən autentifikasiya növünü qeyd etməyi unutmadım, sadəcə olaraq cURL-də əsas autentifikasiya növü standartdır.
Komanda xəttində hər şey o qədər tez işlədi ki, məyusluqdan aşağıdakı proqramı yazdım. O, sayta qoşulur və ən son yeniləməni yükləyir:
Temp=`curl -s -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/ | grep -E -o "Yeniləmə_FED_201(1).(2).(2).7z" | uniq | quyruq -n 1`; curl -o $temp -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/$temp
Yalnız bir neçə daha çox əmrlə əlavə edə bilərsiniz:
- arxivin göstərilən qovluğa açılması;
- ConsultantPlus yeniləmələrinin işə salınması (bunlar onun üçün yeniləmələrdir);
- ən son mövcud yeniləmənin artıq yükləndiyini və ya yenisinin göründüyünü yoxlaya bilərsiniz;
- gündəlik yeniləmələr üçün hamısını Cron-a əlavə edin.
PHP-də HTTP cURL identifikasiyası
Bilməliyik:
- autentifikasiya məlumatlarının göndəriləcəyi ünvan
- GET və ya POST göndərmə üsulu
- daxil ol
- parol
Məlumatı göndərməyiniz lazım olan ünvan autentifikasiya formasından götürülə bilər. Misal üçün: