c URL je vrlo koristan alat komandne linije za prijenos podataka sa ili na server. Curl podržava različite protokole kao što su FILE, HTTP, HTTPS, IMAP, IMAPS, LDAP, DICT, LDAPS, TELNET, FTPS, GOPHER, RTMP, RTSP, SCP, SFTP, POP3, POP3S, SMB, SMBS, SMTP, SMTPS i TFTP .
cURL se može koristiti na razne različite i zanimljive načine. Pomoću ovog alata možete preuzimati, otpremati i upravljati datotekama, provjeriti svoju adresu e-pošte ili čak ažurirati svoj status na nekim web stranicama društvenih medija ili provjeriti vrijeme napolju. U ovom članku ćemo pogledati pet najkorisnijih i osnovnih upotreba alata cURL na bilo kojoj .
1. Provjerite URL
Jedna od najčešćih i najjednostavnijih upotreba cURL-a je ispisivanje same naredbe praćene URL-om koji želite testirati
Curl https://domain.ru
Ova komanda će prikazati sadržaj URL-a na vašem terminalu
2. Sačuvajte URL izlaz u datoteku
Curl -o web stranica https://domain.ru % Ukupno % primljenih % Xferd Prosječna Brzina Vrijeme Vrijeme Vrijeme Trenutno Dload Upload Ukupno utrošeno lijevo Brzina 100 41793 0 41793 0 0 275k 0 --:--:-- - -:-- :-- --:--:-- 2.9M
U ovom primjeru, izlaz će biti spremljen u datoteku pod nazivom 'website' u trenutnom radnom direktoriju.
3. Učitavanje datoteka koristeći Curl
Možete preuzeti datoteke koristeći Curl dodavanjem opcije -o naredbi. Koristi se za spremanje datoteka na lokalnom serveru sa istim imenima kao na udaljenom serveru
Curl -O https://domain.ru/file.zip
U ovom primjeru, arhiva 'file.zip' će biti preuzeta u trenutni radni direktorij.
Također možete otpremiti datoteku s drugim imenom dodavanjem opcije -o u cURL.
Curl -o archive.zip https://domain.ru/file.zip
Tako će arhiva 'file.zip' biti preuzeta i sačuvana kao 'Archive.zip'.
cURL se također može koristiti za preuzimanje više datoteka odjednom, kao što je prikazano u primjeru ispod
Curl -O https://domain.ru/file.zip -O https://domain.com/file2.zip
Curl se također može koristiti za siguran prijenos datoteka preko SSH-a pomoću sljedeće naredbe
Curl -u korisnik sftp://server.domain.ru/path/to/file
Imajte na umu da morate koristiti punu putanju do datoteke koju želite preuzeti
4. Uzmite informacije iz HTTP zaglavlja web stranice
Možete lako dobiti informacije o HTTP zaglavlju sa bilo koje web stranice dodavanjem opcije -I ('i') u cURL.
Curl -I http://domain.ru HTTP/1.1 200 OK Datum: ned, 16. oktobar 2016. 23:37:15 GMT Server: Apache/2.4.23 (Unix) X-Powered-By: PHP/5.6.24 Veza : zatvori Content-Type: text/html; charset=UTF-8
5. Pristup FTP serveru
Da biste pristupili FTP serveru koristeći Curl, trebate koristiti sljedeću naredbu
Curl ftp://ftp.domain.ru -- korisničko ime: lozinka
Curl će se povezati na FTP server i izlistati sve datoteke i direktorije u korisničkom kućnom direktoriju
Možete preuzeti fajl koristeći FTP
Curl ftp://ftp.domain.ru/file.zip -- korisničko ime: lozinka
i prenesite datoteku na FTP server
Curl -T file.zip ftp://ftp.domain.ru/ --korisničko ime: lozinka
Curl stranicu možete provjeriti ručno da vidite sve dostupne cURL opcije i njegovu funkcionalnost
Man curl
PS. Ako vam se svidjela ova objava, podijelite je sa svojim prijateljima na društvenim mrežama koristeći dugmad ispod ili jednostavno ostavite komentar. Hvala ti.
Pravi praktičan primjer: potrebno je ponovo pokrenuti ruter (modem) da biste promijenili IP adresu. Da biste to učinili, morate se: prijaviti na ruter, otići na stranicu za održavanje i kliknuti na dugme „Ponovo pokreni“. Ako ovu radnju treba izvesti nekoliko puta, onda se postupak mora ponoviti. Slažete se, ne želite da radite ovu rutinu svaki put ručno. cURL vam omogućava da sve ovo automatizujete. Sa samo nekoliko cURL naredbi možete postići autorizaciju i završiti zadatak na ruteru.
- cURL je koristan za preuzimanje podataka sa web stranica na komandnoj liniji.
One. slučajevi korišćenja cURL-a su sasvim realni, iako je u većini slučajeva cURL potreban programerima koji ga koriste za svoje programe.
CURL podržava mnoge protokole i metode autorizacije, može prenositi datoteke, ispravno radi s kolačićima, podržava SSL certifikate, proksije i još mnogo toga.
cURL u PHP-u i komandnoj liniji
CURL možemo koristiti na dva glavna načina: u PHP skriptama i na komandnoj liniji.
Da biste omogućili cURL u PHP-u na serveru, morate dekomentirati red u datoteci php.ini
Extension=php_curl.dll
A zatim ponovo pokrenite server.
Na Linuxu morate instalirati curl paket.
Na Debianu, Ubuntu ili Linux Mintu:
$ sudo apt-get install curl
Na Fedora, CentOS ili RHEL:
$ sudo yum install curl
Da bismo jasno uočili razliku u upotrebi u PHP-u i na komandnoj liniji, izvršićemo iste zadatke dvaput: prvo u PHP skripti, a zatim na komandnoj liniji. Pokušajmo da se ne zbunimo.
Preuzimanje podataka pomoću cURL-a
Preuzimanje podataka koristeći cURL u PHP-u
Primjer u PHP-u:
Sve je vrlo jednostavno:
$target_url- adresa stranice koja nas zanima. Nakon adrese stranice možete staviti dvotočku i dodati adresu porta (ako se port razlikuje od standardnog).
curl_init- inicijalizira novu sesiju i vraća ručku, koja je u našem primjeru dodijeljena varijabli $ch.
Zatim izvršavamo zahtjev sa funkcijom cURL curl_exec, kojem se deskriptor prosljeđuje kao parametar.
Sve je vrlo logično, ali kada se ova skripta izvrši, sadržaj stranice će biti prikazan na našoj stranici. Ali šta ako ne želimo prikazati sadržaj, već ga želimo zapisati u varijablu (za naknadnu obradu ili raščlanjivanje).
Dodajmo malo našoj skripti:
0) ( echo "Curl error: " . curl_error($ch); ) curl_close($ch); ?>
Imamo liniju curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);.
curl_setopt- postavlja opcije. Kompletnu listu opcija možete pronaći na ovoj stranici:
Skriveno od gostiju
$response_data = curl_exec($ch);
Sada je vrijednost skripte dodijeljena varijabli $response_data, s kojom se mogu izvršiti daljnje operacije. Na primjer, možete prikazati njegov sadržaj.
Šavovi
If (curl_errno($ch) > 0) ( echo "Curl error: " . curl_error($ch); )
služe za otklanjanje grešaka u slučaju da dođe do greške.
Preuzimanje podataka pomoću cURL-a na komandnoj liniji
U komandnoj liniji samo ukucajte
gde umesto mi-al.ru- adresu Vaše web stranice.
Ako trebate kopirati podatke u varijablu umjesto da prikažete rezultat na ekranu, učinite ovo:
Temp="curl mi-al.ru"
Međutim, neki podaci se i dalje prikazuju:
Da biste spriječili njihovo prikazivanje, dodajte ključ -s:
Temp="curl -s mi-al.ru"
Možete pogledati šta je snimljeno:
Echo $temp | manje
Osnovna i HTTP autentifikacijaAutentifikacija, jednostavno rečeno, je unos korisničkog imena i lozinke.
Osnovna provjera autentičnosti je autentifikacija zasnovana na serveru. Za to se kreiraju dva fajla: .htaccess I .htpasswd
Sadržaj .htaccess datoteke je otprilike ovako
AuthName "Samo za registrovane korisnike!" AuthType Basic zahtijeva validan korisnik AuthUserFile /home/freeforum.biz/htdocs/.htpassw
Sadržaj .htpasswd datoteke je otprilike ovako:
Mial:CRdiI.ZrZQRRc
One. heš za prijavu i lozinku.
Kada pokušate pristupiti folderu zaštićenom lozinkom, pretraživač će prikazati nešto poput ovoga:
HTTP autentifikacija je slučaj kada unesemo login i lozinku u obrazac na web stranici. Ova autentifikacija se koristi prilikom prijavljivanja na poštu, forume itd.
Osnovna cURL autentifikacija (PHP)
Postoji web stranica
Skriveno od gostiju
Isprobajmo našu početnu skriptu:
0) ( echo "Curl error: " . curl_error($ch); ) else ( echo $response_data; ) curl_close($ch); ?>
Iako skripta vjeruje da nema greške, izlaz nam se uopće ne sviđa:
Dodajte dva reda:
Curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, "ru-board:ru-board");
U prvom redu postavljamo tip autentifikacije - osnovni. Drugi red sadrži ime i lozinku odvojene dvotočkom (u našem slučaju ime i lozinka su isti - ru-board). Ispalo je ovako:
0) ( echo "Curl error: " . curl_error($ch); ) else ( echo $response_data; ) curl_close($ch); ?> Pokušajmo: 30946 Odlično! Osnovna cURL autentifikacija (na komandnoj liniji) Ista stvar se može postići na komandnoj liniji sa jednom linijom: curl -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/
Nisam zaboravio da navedem tip autentifikacije, samo što je u cURL osnovni tip autentifikacije podrazumevani.
Sve je ispalo tako brzo na komandnoj liniji da sam iz frustracije napisao sljedeći program. Ona se povezuje na stranicu i preuzima najnovije ažuriranje:
Temp=`curl -s -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/ | grep -E -o "Ažuriraj_FED_201(1).(2).(2).7z" | uniq | rep -n 1`; curl -o $temp -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/$temp
Uz još samo nekoliko naredbi možete dodati:
- raspakivanje arhive u navedeni direktorij;
- pokretanje ConsultantPlus ažuriranja (ovo su ažuriranja za njega);
- možete provjeriti da li je posljednje dostupno ažuriranje već preuzeto ili se pojavilo novo;
- dodajte sve u Cron za svakodnevna ažuriranja.
HTTP cURL autentifikacija u PHP-u
moramo znati:
- adresa na koju se šalju podaci za autentifikaciju
- način slanja GET ili POST
- Ulogovati se
- lozinka
Adresa na koju trebate poslati podatke možete preuzeti iz obrasca za autentifikaciju. Na primjer: