c URL yra labai naudingas komandų eilutės įrankis duomenims iš serverio arba į jį perkelti. Curl palaiko įvairius protokolus, tokius kaip FILE, HTTP, HTTPS, IMAP, IMAPS, LDAP, DICT, LDAPS, TELNET, FTPS, GOPHER, RTMP, RTSP, SCP, SFTP, POP3, POP3S, SMB, SMBS, SMTP, SMTPS ir TFTP .
cURL gali būti naudojamas įvairiais ir įdomiais būdais. Naudodami šį įrankį galite atsisiųsti, įkelti ir tvarkyti failus, patikrinti savo el. pašto adresą ar net atnaujinti būseną kai kuriose socialinės žiniasklaidos svetainėse arba patikrinti orą lauke. Šiame straipsnyje apžvelgsime penkis naudingiausius ir pagrindinius cURL įrankio naudojimo būdus bet kuriame .
1. Patikrinkite URL
Vienas iš labiausiai paplitusių ir paprasčiausių cURL naudojimo būdų yra pačios komandos spausdinimas, po kurio nurodomas URL, kurį norite išbandyti
Curl https://domain.ru
Ši komanda parodys URL turinį jūsų terminale
2. Išsaugokite URL išvestį į failą
Curl -o svetainė https://domain.ru % Iš viso % Gauta % Xferd Vidutinis greitis Laikas Laikas Dabartinis įkėlimas Įkėlimas Iš viso išleista Likęs greitis 100 41793 0 41793 0 0 275k 0 --:--:-- - -:-- :-- --:--:-- 2,9 mln
Šiame pavyzdyje išvestis bus įrašyta į failą pavadinimu „svetainė“ dabartiniame darbo kataloge.
3. Failų įkėlimas naudojant Curl
Failus galite atsisiųsti naudodami Curl, prie komandos pridėję parinktį -o. Jis naudojamas failams įrašyti vietiniame serveryje tais pačiais pavadinimais kaip ir nuotoliniame serveryje
Curl -O https://domain.ru/file.zip
Šiame pavyzdyje archyvas „file.zip“ bus atsiųstas į dabartinį darbo katalogą.
Taip pat galite įkelti failą kitu pavadinimu prie cURL pridėję parinktį -o.
Curl -o archive.zip https://domain.ru/file.zip
Taigi archyvas „file.zip“ bus atsisiųstas ir išsaugotas kaip „Archive.zip“.
cURL taip pat gali būti naudojamas norint vienu metu atsisiųsti kelis failus, kaip parodyta toliau pateiktame pavyzdyje
Curl -O https://domain.ru/file.zip -O https://domain.com/file2.zip
„Curl“ taip pat gali būti naudojamas norint saugiai įkelti failus per SSH, naudojant šią komandą
Curl -u vartotojas sftp://server.domain.ru/path/to/file
Atminkite, kad turite naudoti visą kelią iki failo, kurį norite atsisiųsti
4. Paimkite informaciją iš svetainės HTTP antraštės
Galite lengvai gauti HTTP antraštės informaciją iš bet kurios svetainės, prie cURL pridėję parinktį -I („i“).
Curl -I http://domain.ru HTTP/1.1 200 OK Data: sekmadienis, 2016 m. spalio 16 d. 23:37:15 GMT Serveris: Apache/2.4.23 (Unix) X-Powered-By: PHP/5.6.24 Ryšys : uždaryti Turinio tipas: text/html; charset=UTF-8
5. Prieiga prie FTP serverio
Norėdami pasiekti FTP serverį naudodami Curl, turite naudoti šią komandą
Curl ftp://ftp.domain.ru -- vartotojo vartotojo vardas: slaptažodis
Curl prisijungs prie FTP serverio ir išvardins visus failus ir katalogus vartotojo namų kataloge
Failą galite atsisiųsti naudodami FTP
Curl ftp://ftp.domain.ru/file.zip -- vartotojo vartotojo vardas: slaptažodis
ir įkelkite failą į FTP serverį
Curl -T file.zip ftp://ftp.domain.ru/ --user username:password
Galite rankiniu būdu patikrinti Curl puslapį, kad pamatytumėte visas galimas cURL parinktis ir jo funkcijas
Vyriška garbanė
PS. Jei jums patiko šis įrašas, pasidalykite juo su draugais socialiniuose tinkluose naudodami žemiau esančius mygtukus arba tiesiog palikite komentarą. Ačiū.
Tikras praktinis pavyzdys: norėdami pakeisti IP adresą, turite iš naujo paleisti maršrutizatorių (modemą). Norėdami tai padaryti, turite: prisijungti prie maršrutizatoriaus, eiti į priežiūros puslapį ir spustelėti mygtuką „Paleisti iš naujo“. Jei šį veiksmą reikia atlikti kelis kartus, procedūrą reikia pakartoti. Sutikite, nenorite kiekvieną kartą atlikti šios rutinos rankiniu būdu. cURL leidžia visa tai automatizuoti. Vos keliomis cURL komandomis galite gauti įgaliojimą ir užbaigti užduotį maršrutizatoriuje.
- cURL yra naudingas norint gauti duomenis iš svetainių komandinėje eilutėje.
Tie. cURL naudojimo atvejai yra gana realūs, nors dažniausiai cURL reikia programuotojams, kurie jį naudoja savo programoms.
CURL palaiko daugybę protokolų ir autorizacijos metodų, gali perkelti failus, tinkamai veikia su slapukais, palaiko SSL sertifikatus, tarpinius serverius ir daug daugiau.
cURL PHP ir komandinėje eilutėje
CURL galime naudoti dviem pagrindiniais būdais: PHP scenarijuose ir komandinėje eilutėje.
Norėdami įjungti cURL serveryje PHP, turite panaikinti php.ini failo eilutės komentarą
Extension=php_curl.dll
Ir tada perkraukite serverį.
„Linux“ sistemoje turite įdiegti „curl“ paketą.
„Debian“, „Ubuntu“ arba „Linux Mint“:
$ sudo apt-get install curl
„Fedora“, „CentOS“ arba RHEL:
$ sudo yum įdiegti curl
Kad aiškiai matytume PHP ir komandinės eilutės naudojimo skirtumus, tas pačias užduotis atliksime du kartus: pirmiausia PHP scenarijuje, o tada komandinėje eilutėje. Pasistenkime nesusipainioti.
Duomenų gavimas naudojant cURL
Duomenų gavimas naudojant cURL PHP
Pavyzdys PHP:
Viskas labai paprasta:
$target_url- mus dominančios svetainės adresas. Po svetainės adreso galite įdėti dvitaškį ir pridėti prievado adresą (jei prievadas skiriasi nuo standartinio).
curl_init- inicijuoja naują seansą ir grąžina rankenėlę, kuri mūsų pavyzdyje yra priskirta kintamajam $ch.
Tada vykdome užklausą naudodami cURL funkciją curl_exec, kuriam kaip parametras perduodamas deskriptorius.
Viskas labai logiška, bet kai šis scenarijus bus vykdomas, svetainės turinys bus rodomas mūsų puslapyje. Bet ką daryti, jei nenorime rodyti turinio, bet norime įrašyti jį į kintamąjį (toliau apdoroti ar analizuoti).
Šiek tiek papildykime savo scenarijų:
0) ( echo "Curl error: " . curl_error($ch); ) curl_close($ch); ?>
Mes turime eilutę curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);.
curl_setopt- nustato parinktis. Išsamų parinkčių sąrašą galite rasti šiame puslapyje:
Paslėptas nuo svečių
$atsakymo_duomenys = curl_exec($ch);
Dabar scenarijaus reikšmė priskiriama $response_data kintamajam, su kuriuo galima atlikti tolesnes operacijas. Pavyzdžiui, galite parodyti jo turinį.
Siūlės
If (curl_errno($ch) > 0) ( pakartokite "Curl error:" . curl_error($ch); )
tarnauja derinimui, jei atsiranda klaidų.
Duomenų gavimas naudojant cURL komandinėje eilutėje
Komandinėje eilutėje tiesiog įveskite
kur vietoj mi-al.ru- jūsų svetainės adresas.
Jei reikia nukopijuoti duomenis į kintamąjį, o ne rodyti rezultatą ekrane, atlikite šiuos veiksmus:
Temp="curl mi-al.ru"
Tačiau kai kurie duomenys vis tiek rodomi:
Kad jie nebūtų rodomi, pridėkite raktą -s:
Temp = "curl -s mi-al.ru"
Galite pamatyti, kas buvo įrašyta:
Aidas $temp | mažiau
Pagrindinis ir HTTP autentifikavimasPaprasčiau tariant, autentifikavimas yra vartotojo vardo ir slaptažodžio įvedimas.
Pagrindinis autentifikavimas yra serverio autentifikavimas. Tam sukuriami du failai: .htaccess Ir .htpasswd
.htaccess failo turinys yra maždaug toks
AuthName "Tik registruotiems vartotojams!" AuthType Basic reikalauja galiojančio vartotojo AuthUserFile /home/freeforum.biz/htdocs/.htpassw
.htpasswd failo turinys yra maždaug toks:
Mial:CRdiI.ZrZQRRc
Tie. prisijungimo ir slaptažodžio maiša.
Kai bandysite pasiekti slaptažodžiu apsaugotą aplanką, naršyklė parodys maždaug taip:
HTTP autentifikavimas yra atvejis, kai įvedame prisijungimo vardą ir slaptažodį į svetainės formą. Būtent šis autentifikavimas naudojamas prisijungiant prie pašto, forumų ir pan.
Pagrindinis cURL autentifikavimas (PHP)
Yra svetainė
Paslėptas nuo svečių
Pabandykime savo pradinį scenarijų:
0) ( echo "Curl error: " . curl_error($ch); ) else ( echo $response_data; ) curl_close($ch); ?>
Nors scenarijus mano, kad klaidos nėra, išvestis mums visai nepatinka:
Pridėkite dvi eilutes:
Curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, "ru-board:ru-board");
Pirmoje eilutėje nustatome autentifikavimo tipą - pagrindinį. Antroje eilutėje yra vardas ir slaptažodis, atskirti dvitaškiu (mūsų atveju vardas ir slaptažodis yra vienodi - ru-board). Tai pasirodė taip:
0) ( echo "Curl error: " . curl_error($ch); ) else ( echo $response_data; ) curl_close($ch); ?> Pabandykime: 30946 Puiku! Pagrindinis cURL autentifikavimas (komandinėje eilutėje) Tą patį galima pasiekti komandų eilutėje naudojant vieną eilutę: curl -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/
Nepamiršau nurodyti autentifikavimo tipo, tiesiog cURL pagrindinis autentifikavimo tipas yra numatytasis.
Komandinėje eilutėje viskas pavyko taip greitai, kad iš nusivylimo parašiau šią programą. Ji prisijungia prie svetainės ir atsisiunčia naujausią naujinimą:
Temp=`curl -s -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/ | grep -E -o "Atnaujinti_FED_201(1).(2).(2).7z" | unikalus | uodega -n 1`; curl -o $temp -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/$temp
Tik dar keliomis komandomis galite pridėti:
- archyvo išpakavimas į nurodytą katalogą;
- paleisti ConsultantPlus naujinimus (tai yra jo atnaujinimai);
- galite patikrinti, ar naujausias galimas naujinimas jau atsisiųstas, ar atsirado naujas;
- pridėkite visa tai prie „Cron“, kad gautumėte kasdienius atnaujinimus.
HTTP cURL autentifikavimas PHP
Turime žinoti:
- adresas, kur siųsti autentifikavimo duomenis
- siuntimo būdas GET arba POST
- Prisijungti
- Slaptažodis
Adresą, kuriuo reikia siųsti duomenis, galima paimti iš autentifikavimo formos. Pavyzdžiui: