Haqiqiy amaliy misol: IP manzilini o'zgartirish uchun routerni (modemni) qayta ishga tushirishingiz kerak. Buni amalga oshirish uchun sizga kerak: marshrutizatorga kiring, texnik xizmat ko'rsatish sahifasiga o'ting va "Qayta yuklash" tugmasini bosing. Agar bu harakatni bir necha marta bajarish kerak bo'lsa, protsedurani takrorlash kerak. Qabul qiling, bu tartibni har safar qo'lda qilishni xohlamaysiz. cURL bularning barchasini avtomatlashtirish imkonini beradi. Bir nechta cURL buyruqlari yordamida siz avtorizatsiyaga erishishingiz va routerdagi vazifani bajarishingiz mumkin.
- cURL buyruq satridagi veb-saytlardan ma'lumotlarni olish uchun foydalidir.
Bular. cURL dan foydalanish holatlari juda realdir, garchi ko'pchilikda cURL uni o'z dasturlari uchun ishlatadigan dasturchilarga kerak bo'ladi.
CURL ko'plab protokollar va avtorizatsiya usullarini qo'llab-quvvatlaydi, fayllarni uzatishi mumkin, cookie-fayllar bilan to'g'ri ishlaydi, SSL sertifikatlari, proksi-serverlar va boshqalarni qo'llab-quvvatlaydi.
PHP va buyruq satrida cURL
Biz cURL dan ikkita asosiy usulda foydalanishimiz mumkin: PHP skriptlarida va buyruq satrida.
Serverda PHP-da cURL-ni yoqish uchun php.ini faylidagi qatorni izohdan olib tashlashingiz kerak.
Kengaytma=php_curl.dll
Va keyin serverni qayta ishga tushiring.
Linuxda siz curl paketini o'rnatishingiz kerak.
Debian, Ubuntu yoki Linux Mint-da:
$ sudo apt-get install curl
Fedora, CentOS yoki RHEL da:
$ sudo yum curl o'rnatish
PHP va buyruq satrida foydalanishdagi farqni aniq ko'rish uchun biz bir xil vazifalarni ikki marta bajaramiz: birinchi navbatda PHP skriptida, keyin esa buyruq satrida. Keling, chalkashmaslikka harakat qilaylik.
cURL yordamida ma'lumotlarni olish
PHP da cURL yordamida ma'lumotlarni olish
PHP da misol:
Hammasi juda oddiy:
$target_url- bizni qiziqtirgan sayt manzili. Sayt manzilidan keyin siz ikkita nuqta qo'yishingiz va port manzilini qo'shishingiz mumkin (agar port standartdan farq qilsa).
curl_init- yangi seansni ishga tushiradi va bizning misolimizda o'zgaruvchiga tayinlangan tutqichni qaytaradi $ch.
Keyin so'rovni cURL funktsiyasi bilan bajaramiz curl_exec, unga parametr sifatida tavsiflovchi uzatiladi.
Har bir narsa juda mantiqiy, lekin bu skript bajarilganda saytning mazmuni bizning sahifamizda ko'rsatiladi. Ammo biz tarkibni ko'rsatishni istamasak-chi, lekin uni o'zgaruvchiga yozmoqchi bo'lsak (keyingi ishlov berish yoki tahlil qilish uchun).
Skriptimizga bir oz qo'shamiz:
0) ( echo "Curl xatosi: " . curl_error($ch); ) curl_close($ch); ?>
Bizda chiziq bor curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);.
curl_setopt- variantlarni o'rnatadi. Variantlarning to'liq ro'yxatini ushbu sahifada topishingiz mumkin:
Mehmonlardan yashirin
$response_data = curl_exec($ch);
Endi skript qiymati $response_data o'zgaruvchisiga tayinlanadi, bu bilan keyingi operatsiyalarni bajarish mumkin. Masalan, siz uning mazmunini ko'rsatishingiz mumkin.
Tikmalar
Agar (curl_errno($ch) > 0) ( echo "Curl error: " . curl_error($ch); )
xatolar yuzaga kelganda disk raskadrovka uchun xizmat qiladi.
Buyruqlar satrida cURL yordamida ma'lumotlarni olish
Buyruqlar qatorida shunchaki yozing
o'rniga qaerda mi-al.ru- veb-saytingiz manzili.
Agar siz natijani ekranda ko'rsatish o'rniga, ma'lumotlarni o'zgaruvchiga nusxalashingiz kerak bo'lsa, buni bajaring:
Temp="curl mi-al.ru"
Biroq, ba'zi ma'lumotlar hali ham ko'rsatiladi:
Ularning ko'rsatilishini oldini olish uchun kalitni qo'shing -s:
Temp="curl -s mi-al.ru"
Siz nima yozilganligini ko'rishingiz mumkin:
Echo $temp | Ozroq
Asosiy va HTTP autentifikatsiyasiAutentifikatsiya, sodda qilib aytganda, foydalanuvchi nomi va parolni kiritishdir.
Asosiy autentifikatsiya serverga asoslangan autentifikatsiya hisoblanadi. Buning uchun ikkita fayl yaratiladi: .htaccess Va .htpasswd
.htaccess faylining mazmuni shunga o'xshash
AuthName "Faqat ro'yxatdan o'tgan foydalanuvchilar uchun!" AuthType Basic uchun haqiqiy foydalanuvchi AuthUserFile /home/freeforum.biz/htdocs/.htpassw talab qilinadi
.htpasswd faylining mazmuni quyidagicha:
Mial: CRdiI.ZrZQRRc
Bular. login va parol xesh.
Parol bilan himoyalangan jildga kirishga harakat qilganingizda, brauzer quyidagicha ko'rinadi:
HTTP autentifikatsiyasi veb-saytdagi formaga login va parolni kiritganimizda sodir bo'ladi. Aynan shu autentifikatsiya pochta, forumlar va hokazolarga kirishda qo'llaniladi.
Asosiy cURL autentifikatsiyasi (PHP)
Veb-sayt mavjud
Mehmonlardan yashirin
Keling, boshlang'ich skriptimizni sinab ko'raylik:
0) ( echo "Curl error: " . curl_error($ch); ) else ( echo $response_data; ) curl_close($ch); ?>
Skript xato yo'q deb hisoblasa-da, biz chiqishni umuman yoqtirmaymiz:
Ikki qator qo'shing:
Curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, "ru-board:ru-board");
Birinchi qatorda biz autentifikatsiya turini o'rnatdik - asosiy. Ikkinchi qatorda ikki nuqta bilan ajratilgan ism va parol mavjud (bizning holatlarimizda ism va parol bir xil - ru-board). Bu shunday chiqdi:
0) ( echo "Curl error: " . curl_error($ch); ) else ( echo $response_data; ) curl_close($ch); ?> Keling, sinab ko'ramiz: 30946 Ajoyib! Asosiy cURL autentifikatsiyasi (buyruqlar satrida) Xuddi shu narsa buyruq satrida bitta satr bilan amalga oshirilishi mumkin: curl -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/
Men autentifikatsiya turini belgilashni unutmadim, shunchaki cURL da asosiy autentifikatsiya turi sukut bo'yicha.
Buyruqlar satrida hamma narsa shu qadar tez amalga oshdiki, men umidsizlikdan quyidagi dasturni yozdim. U saytga ulanadi va oxirgi yangilanishni yuklab oladi:
Temp=`curl -s -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/ | grep -E -o "Update_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
Yana bir nechta buyruqlar bilan siz qo'shishingiz mumkin:
- arxivni belgilangan katalogga ochish;
- ConsultantPlus yangilanishlarini ishga tushirish (bular uning uchun yangilanishlar);
- so'nggi mavjud yangilanish allaqachon yuklab olinganligini yoki yangisi paydo bo'lganligini tekshirishingiz mumkin;
- kundalik yangilanishlar uchun barchasini Cron-ga qo'shing.
PHP da HTTP cURL autentifikatsiyasi
Biz bilishimiz kerak:
- autentifikatsiya ma'lumotlarini yuborish manzili
- yuborish usuli GET yoki POST
- tizimga kirish
- parol
Ma'lumotni yuborishingiz kerak bo'lgan manzil autentifikatsiya shaklidan olinishi mumkin. Masalan: