Opcije naredbenog retka Curl. Izoštravanje vještina uz cURL

CURL je paket softver, koji se sastoji od uslužnog programa naredbenog retka i biblioteke za prosljeđivanje podataka pomoću URL sintakse.

CURL podržava mnoge protokole, uključujući DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet i TFTP.

Učitajte zasebnu datoteku
Sljedeća naredba će dobiti sadržaj URL-a i prikazati ga na standardnom izlazu (tj. vašem terminalu).

Curl https://mi-al.ru/ > mi-al.htm % Ukupno % Primljeno % Xferd Prosječna brzina Vrijeme Vrijeme Vrijeme Trenutno učitavanje Prijenos Ukupno potrošena lijeva brzina 100 14378 0 14378 0 0 5387 0 --: --:- - 0:00:02 --:--:-- 5387

Spremanje cURL izlaza u datoteku
Rezultat naredbe curl možemo spremiti u datoteku pomoću opcija -o/-O.
  • -o(o malim slovima) rezultat će biti spremljen u datoteku navedenu u naredbeni redak
  • -O(velika slova O) naziv datoteke bit će preuzet iz URL-a i koristit će se za spremanje primljenih podataka.

$ curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html

Stranica gettext.html sada će biti spremljena u datoteku pod nazivom 'mygettext.html'. Kada se curl pokrene s opcijom -o, prikazuje traku napretka preuzimanja kako slijedi.

% Ukupno % Primljeno % Xferd Prosječna brzina Vrijeme Vrijeme Trenutačno Dload Prijenos Ukupna potrošena lijeva brzina 66 1215k 66 805k 0 0 33060 0 0:00:37 0:00:24 0:00:13 45900 100 1215k 100 1215k 0 0 39474 0 0:00:31 0:00:31 --:--:-- 68987

Kada koristite curl -O (velika slova O), on će sam spremiti sadržaj u datoteku pod nazivom 'gettext.html' na lokalnom računalu.

$ curl -O http://www.gnu.org/software/gettext/manual/gettext.html

Napomena: Kada curl treba pisati podatke na terminal, onemogućuje traku napretka kako bi se izbjegla zabuna s ispisanim podacima. Možemo koristiti opcije '>'|'-o'|'-O' za prijenos rezultata u datoteku.

Dohvaćanje više datoteka odjednom
Možemo preuzeti više datoteka odjednom navođenjem svih URL-ova u naredbenom retku.

Curl -O URL1 -O URL2

Donja naredba će preuzeti i index.html i gettext.html i spremiti ih pod istim imenima u trenutni direktorij.

Curl -O http://www.gnu.org/software/gettext/manual/html_node/index.html -O http://www.gnu.org/software/gettext/manual/gettext.html

Imajte na umu da kada preuzmemo više datoteka s istog poslužitelja kao što je prikazano gore, curl će pokušati ponovno upotrijebiti vezu.

Slijedite zaglavlja HTTP lokacije s opcijom -L
Prema zadanim postavkama, CURL ne slijedi HTTP lokaciju u zaglavljima (preusmjeravanja). Kada se tražena web stranica premjesti na drugu lokaciju, odgovarajući odgovor bit će poslan u zaglavlja HTTP lokacije.
Na primjer, kada netko upiše google.com u svoj preglednik iz svoje zemlje, automatski će biti preusmjeren na 'google.co.xx'. To se radi na temelju zaglavlja HTTP lokacije kao što je prikazano u nastavku.

Curl https://www.google.com/?gws_rd=ssl

302 Premješteno

302 Premješteno

Dokument je premješten ovdje.

Gornji izlaz kaže da je traženi dokument premješten u "

Skriven od gostiju

.
Možete reći curlu da slijedi preusmjeravanja, to se radi pomoću opcije -L kao što je prikazano u nastavku. Sada će se učitati izvor html s

Skriven od gostiju

.

Curl -L https://www.google.com/?gws_rd=ssl

Obnavljanje prethodnog preuzimanja

Korištenjem opcije -C možete nastaviti preuzimanje koje je zaustavljeno iz nekog razloga. Ovo će biti korisno kada preuzimanje velikih datoteka ne uspije.
Ako kažemo '-C -', tada će curl tražiti odakle nastaviti preuzimanje. Također možemo navesti '-C<смещение>’. Navedeni pomak bajta bit će preskočen od početka izvorne datoteke.
Započnite veliko opterećenje pomoću curl i pritisnite Ctrl-C da zaustavite preuzimanje usred preuzimanja.

$ curl -O http://www.gnu.org/software/gettext/manual/gettext.html ############### 20,1%

Injektiranje je zaustavljeno na 20,1%. Koristeći “curl -C -” možemo nastaviti učitavanje od mjesta gdje smo stali. Sada će se preuzimanje nastaviti od 20,1%.

Curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html ################ 21,1%

Ograničenje brzine prijenosa podataka
Brzinu prijenosa podataka možete ograničiti pomoću opcije –limit-rate. Maksimalnu brzinu možete proslijediti kao argument.

$ curl --limit-rate 1000B -O http://www.gnu.org/software/gettext/manual/gettext.html

Gornja naredba ograničit će brzinu prijenosa na 1000 bajtova/sekundi. curl može koristiti veće brzine u vrhovima. Ali prosječna brzina bit će otprilike 1000 bajtova u sekundi.
Ispod je traka napretka za gornju naredbu. Možete vidjeti da je trenutna brzina oko 1000 bajtova.

% Ukupno % Primljeno % Xferd Prosječna brzina Vrijeme Vrijeme Trenutačno Dload Prijenos Ukupna potrošena lijeva brzina 1 1215k 1 13601 0 0 957 0 0:21:40 0:00:14 0:21:26 999 1 1215k 1 14601 0 0 960 0 0:21:36 0:00:15 0:21:21 999 1 1215k 1 15601 0 0 962 0 0:21:34 0:00:16 0:21:18 999

Učitaj datoteku samo ako je promijenjena prije/nakon određenog vremena
Možete dobiti datoteke koje su se promijenile nakon određenog vremena pomoću opcije -z u curl. Ovo će raditi i za FTP i za HTTP.

Gornja naredba će učitati yy.html samo ako je izmijenjen u novije vrijeme od navedenog datuma i vremena.

Gornja naredba će učitati file.html ako je izmijenjen prije zadanog datuma i vremena. Upišite 'man curl_getdate' da biste saznali više o različitim podržanim sintaksama za datumske izraze.

Prosljeđivanje HTTP provjere autentičnosti u cURL-u
Ponekad web-mjesta zahtijevaju korisničko ime i lozinku za pregled sadržaja. Pomoću opcije -u možete proslijediti ove vjerodajnice s cURL-a web poslužitelju kao što je prikazano u nastavku.

$ curl -u korisničko ime: lozinka URL

Napomena: Prema zadanim postavkama, curl koristi HTTP osnovnu provjeru autentičnosti. Možemo postaviti druge metode provjere autentičnosti koristeći –ntlm | -probaviti.


cURL se također može koristiti za preuzimanje datoteka s FTP poslužitelja. Ako je navedena FTP staza direktorij, tada će prema zadanim postavkama biti prikazan popis datoteka u njemu.

$ curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php

Gornja naredba će preuzeti datoteku xss.php s ftp poslužitelja i spremiti je u lokalni direktorij.

$ curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/

Ovdje se URL odnosi na imenik. Stoga će cURL ispisati datoteke i direktorije na danom URL-u.


CURL podržava raspone navedene u URL-ovima. Kada se zada raspon, učitat će se odgovarajuće datoteke unutar tog raspona. Ovo će biti korisno prilikom preuzimanja paketa s FTP zrcalnih stranica.

$ curl ftp://ftp.uk.debian.org/debian/pool/main//

Gornja naredba izlistat će sve pakete raspon a-z u terminalu.

Prijenos datoteka na FTP poslužitelj
Curl se također može koristiti za učitavanje na FTP poslužitelj s opcijom -T.

$ curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.testserver.com

Gornja naredba prenijet će datoteku pod nazivom myfile.txt na FTP poslužitelj. Također možete prenijeti više datoteka odjednom pomoću raspona.

$ curl -u ftpuser:ftppass -T "(datoteka1,datoteka2)" ftp://ftp.testserver.com

Opcionalno možemo koristiti "." za primanje sa standardnog ulaza i prosljeđivanje na udaljeni stroj.

$ curl -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt

Gornja naredba će primiti izlaz od korisnika sa standardnog ulaza i pohraniti sadržaj na ftp poslužitelj kao 'myfile_1.txt'.
Možete navesti '-T' za svaki URL, a svaki par adresa-datoteka odredit će što kamo uploadati

Više informacija uz povećanu opširnost i praćenje
Možete saznati što se događa pomoću opcije -v. Opcija -v omogućuje verbalni način rada i ispisuje detalje.

Curl -v https://www.google.co.th/?gws_rd=ssl

Gornja naredba će ispisati sljedeće

* Ponovno izgrađen URL na: https://www.google.co.th/?gws_rd=ssl * Naziv glavnog računala bio je Nije pronađeno u DNS predmemoriji * Pokušavam 27.123.17.49... * Povezan na www.google.co.th (27.123.17.49) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.38.0 > Host : www.google.co.th > Prihvati: */* >< HTTP/1.1 200 OK < Date: Fri, 14 Aug 2015 23:07:20 GMT < Expires: -1 < Cache-Control: private, max-age=0 < Content-Type: text/html; charset=windows-874 < P3P: CP="This is not a P3P policy! See https://support.google.com/accounts/answer/151657?hl=en for more info." * Server gws is not blacklisted < Server: gws < X-XSS-Protection: 1; mode=block < X-Frame-Options: SAMEORIGIN < Set-Cookie: PREF=ID=1111111111111111:FF=0:TM=1439593640:LM=1439593640:V=1:S=FfuoPPpKbyzTdJ6T; expires=Sun, 13-Aug-2017 23:07:20 GMT; path=/; domain=.google.co.th ... ... ...

Ako trebate više detaljne informacije, tada možete koristiti opciju –trace. Opcija –trace omogućit će puni dump praćenja svih dolaznih/odlaznih podataka za određenu datoteku



CURL je softverski paket koji se sastoji od uslužnog programa naredbenog retka i biblioteke za prijenos podataka pomoću URL sintakse.

CURL podržava mnoge protokole, uključujući DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet i TFTP.

Učitajte zasebnu datoteku
Sljedeća naredba će dobiti sadržaj URL-a i prikazati ga na standardnom izlazu (tj. vašem terminalu).

Curl https://mi-al.ru/ > mi-al.htm % Ukupno % Primljeno % Xferd Prosječna brzina Vrijeme Vrijeme Vrijeme Trenutno učitavanje Prijenos Ukupno potrošena lijeva brzina 100 14378 0 14378 0 0 5387 0 --: --:- - 0:00:02 --:--:-- 5387

Spremanje cURL izlaza u datoteku
Rezultat naredbe curl možemo spremiti u datoteku pomoću opcija -o/-O.
  • -o(o malim slovima) rezultat će biti spremljen u datoteku navedenu u naredbenom retku
  • -O(velika slova O) naziv datoteke bit će preuzet iz URL-a i koristit će se za spremanje primljenih podataka.

$ curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html

Stranica gettext.html sada će biti spremljena u datoteku pod nazivom 'mygettext.html'. Kada se curl pokrene s opcijom -o, prikazuje traku napretka preuzimanja kako slijedi.

% Ukupno % Primljeno % Xferd Prosječna brzina Vrijeme Vrijeme Trenutačno Dload Prijenos Ukupna potrošena lijeva brzina 66 1215k 66 805k 0 0 33060 0 0:00:37 0:00:24 0:00:13 45900 100 1215k 100 1215k 0 0 39474 0 0:00:31 0:00:31 --:--:-- 68987

Kada koristite curl -O (velika slova O), on će sam spremiti sadržaj u datoteku pod nazivom 'gettext.html' na lokalnom računalu.

$ curl -O http://www.gnu.org/software/gettext/manual/gettext.html

Napomena: Kada curl treba pisati podatke na terminal, onemogućuje traku napretka kako bi se izbjegla zabuna s ispisanim podacima. Možemo koristiti opcije '>'|'-o'|'-O' za prijenos rezultata u datoteku.

Dohvaćanje više datoteka odjednom
Možemo preuzeti više datoteka odjednom navođenjem svih URL-ova u naredbenom retku.

Curl -O URL1 -O URL2

Donja naredba će preuzeti i index.html i gettext.html i spremiti ih pod istim imenima u trenutni direktorij.

Curl -O http://www.gnu.org/software/gettext/manual/html_node/index.html -O http://www.gnu.org/software/gettext/manual/gettext.html

Imajte na umu da kada preuzmemo više datoteka s istog poslužitelja kao što je prikazano gore, curl će pokušati ponovno upotrijebiti vezu.

Slijedite zaglavlja HTTP lokacije s opcijom -L
Prema zadanim postavkama, CURL ne slijedi HTTP lokaciju u zaglavljima (preusmjeravanja). Kada se tražena web stranica premjesti na drugu lokaciju, odgovarajući odgovor bit će poslan u zaglavlja HTTP lokacije.
Na primjer, kada netko upiše google.com u svoj preglednik iz svoje zemlje, automatski će biti preusmjeren na 'google.co.xx'. To se radi na temelju zaglavlja HTTP lokacije kao što je prikazano u nastavku.

Curl https://www.google.com/?gws_rd=ssl

302 Premješteno

302 Premješteno

Dokument je premješten ovdje.

Gornji izlaz kaže da je traženi dokument premješten u "

Skriven od gostiju

.
Možete reći curlu da slijedi preusmjeravanja, to se radi pomoću opcije -L kao što je prikazano u nastavku. Sada će se učitati izvornik html kod S

Skriven od gostiju

.

Curl -L https://www.google.com/?gws_rd=ssl

Obnavljanje prethodnog preuzimanja

Korištenjem opcije -C možete nastaviti preuzimanje koje je zaustavljeno iz nekog razloga. Ovo će biti korisno kada preuzimanje velikih datoteka ne uspije.
Ako kažemo '-C -', tada će curl tražiti odakle nastaviti preuzimanje. Također možemo navesti '-C<смещение>’. Navedeni pomak bajta bit će preskočen od početka izvorne datoteke.
Pokrenite veliko preuzimanje pomoću curl i pritisnite Ctrl-C da biste ga zaustavili usred preuzimanja.

$ curl -O http://www.gnu.org/software/gettext/manual/gettext.html ############### 20,1%

Injektiranje je zaustavljeno na 20,1%. Koristeći “curl -C -” možemo nastaviti učitavanje od mjesta gdje smo stali. Sada će se preuzimanje nastaviti od 20,1%.

Curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html ################ 21,1%

Ograničenje brzine prijenosa podataka
Brzinu prijenosa podataka možete ograničiti pomoću opcije –limit-rate. Maksimalnu brzinu možete proslijediti kao argument.

$ curl --limit-rate 1000B -O http://www.gnu.org/software/gettext/manual/gettext.html

Gornja naredba ograničit će brzinu prijenosa na 1000 bajtova/sekundi. curl može koristiti veće brzine u vrhovima. Ali prosječna brzina bit će otprilike 1000 bajtova u sekundi.
Ispod je traka napretka za gornju naredbu. Možete vidjeti da je trenutna brzina oko 1000 bajtova.

% Ukupno % Primljeno % Xferd Prosječna brzina Vrijeme Vrijeme Trenutačno Dload Prijenos Ukupna potrošena lijeva brzina 1 1215k 1 13601 0 0 957 0 0:21:40 0:00:14 0:21:26 999 1 1215k 1 14601 0 0 960 0 0:21:36 0:00:15 0:21:21 999 1 1215k 1 15601 0 0 962 0 0:21:34 0:00:16 0:21:18 999

Učitaj datoteku samo ako je promijenjena prije/nakon određenog vremena
Možete dobiti datoteke koje su se promijenile nakon određenog vremena pomoću opcije -z u curl. Ovo će raditi i za FTP i za HTTP.

Gornja naredba će učitati yy.html samo ako je izmijenjen u novije vrijeme od navedenog datuma i vremena.

Gornja naredba će učitati file.html ako je izmijenjen prije zadanog datuma i vremena. Upišite 'man curl_getdate' da biste saznali više o različitim podržanim sintaksama za datumske izraze.

Prosljeđivanje HTTP provjere autentičnosti u cURL-u
Ponekad web-mjesta zahtijevaju korisničko ime i lozinku za pregled sadržaja. Pomoću opcije -u možete proslijediti ove vjerodajnice s cURL-a web poslužitelju kao što je prikazano u nastavku.

$ curl -u korisničko ime: lozinka URL

Napomena: Prema zadanim postavkama, curl koristi HTTP osnovnu provjeru autentičnosti. Možemo postaviti druge metode provjere autentičnosti koristeći –ntlm | -probaviti.


cURL se također može koristiti za preuzimanje datoteka s FTP poslužitelja. Ako je navedena FTP staza direktorij, tada će prema zadanim postavkama biti prikazan popis datoteka u njemu.

$ curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php

Gornja naredba će preuzeti datoteku xss.php s ftp poslužitelja i spremiti je u lokalni direktorij.

$ curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/

Ovdje se URL odnosi na imenik. Stoga će cURL ispisati datoteke i direktorije na danom URL-u.


CURL podržava raspone navedene u URL-ovima. Kada se zada raspon, učitat će se odgovarajuće datoteke unutar tog raspona. Ovo će biti korisno prilikom preuzimanja paketa s FTP zrcalnih stranica.

$ curl ftp://ftp.uk.debian.org/debian/pool/main//

Gornja naredba izlistat će sve pakete u rasponu a-z u terminalu.

Prijenos datoteka na FTP poslužitelj
Curl se također može koristiti za učitavanje na FTP poslužitelj s opcijom -T.

$ curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.testserver.com

Gornja naredba prenijet će datoteku pod nazivom myfile.txt na FTP poslužitelj. Također možete prenijeti više datoteka odjednom pomoću raspona.

$ curl -u ftpuser:ftppass -T "(datoteka1,datoteka2)" ftp://ftp.testserver.com

Opcionalno možemo koristiti "." za primanje sa standardnog ulaza i prosljeđivanje na udaljeni stroj.

$ curl -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt

Gornja naredba će primiti izlaz od korisnika sa standardnog ulaza i pohraniti sadržaj na ftp poslužitelj kao 'myfile_1.txt'.
Možete navesti '-T' za svaki URL, a svaki par adresa-datoteka odredit će što kamo uploadati

Više informacija uz povećanu opširnost i praćenje
Možete saznati što se događa pomoću opcije -v. Opcija -v omogućuje verbalni način rada i ispisuje detalje.

Curl -v https://www.google.co.th/?gws_rd=ssl

Gornja naredba će ispisati sljedeće

* Ponovno izgrađen URL na: https://www.google.co.th/?gws_rd=ssl * Naziv hosta NIJE pronađen u DNS predmemoriji * Pokušavam 27.123.17.49... * Povezan na www.google.co.th (27.123. 17.49) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.38.0 > Host: www.google.co.th > Accept: */* >< HTTP/1.1 200 OK < Date: Fri, 14 Aug 2015 23:07:20 GMT < Expires: -1 < Cache-Control: private, max-age=0 < Content-Type: text/html; charset=windows-874 < P3P: CP="This is not a P3P policy! See https://support.google.com/accounts/answer/151657?hl=en for more info." * Server gws is not blacklisted < Server: gws < X-XSS-Protection: 1; mode=block < X-Frame-Options: SAMEORIGIN < Set-Cookie: PREF=ID=1111111111111111:FF=0:TM=1439593640:LM=1439593640:V=1:S=FfuoPPpKbyzTdJ6T; expires=Sun, 13-Aug-2017 23:07:20 GMT; path=/; domain=.google.co.th ... ... ...

Ako trebate detaljnije informacije, tada možete koristiti opciju –trace. Opcija –trace omogućit će puni dump praćenja svih dolaznih/odlaznih podataka za određenu datoteku



CURL je alat naredbenog retka za primanje ili slanje podataka pomoću URL sintakse.

Ako radite u službi za pomoć, trebali biste moći koristiti cURL naredbe za rješavanje problema s web aplikacijama. cURL je uslužni program za više platformi za Windows, MAC i UNIX.
Ispod su neki često korišteni primjeri sintakse.

1. Provjerite može li se URL povezati

Ako ste na UNIX sustavu i pokušavate se spojiti na vanjski URL, prvo provjerite možete li pristupiti resursu putem curl. Da biste to učinili, koristite sljedeću naredbu:

# curl yoururl.com

2. Spremanje URL/URI izlaza u datoteku

# curl yoururl.com > yoururl.html

Na primjer:

# curl 74.125.68.100 >/tmp/google.html

Gornji primjer spremit će sav sadržaj s hosta 74.125.68.100 u datoteku /tmp/google.html.

3. Prikažite zaglavlje zahtjeva i odgovora

Ako želite biti sigurni da ćete primiti očekivano zaglavlje zahtjeva i odgovora, upotrijebite sljedeću naredbu:

# curl -v vašurl.com

Na primjer:

# curl -v 74.125.68.100 * Spremam se za povezivanje() na 74.125.68.100 port 80 (#0) * Pokušavam 74.125.68.100... * Spojen na 74.125.68.100 (74.125.68.100) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.29.0 > Host: 74.125.68.100 > Accept: */* >< HTTP/1.1 200 OK

4. Preuzmite maksimalnom brzinom

Ako želite znati koliko je vremena potrebno za preuzimanje određenom brzinom, upotrijebite sljedeću naredbu:

# curl --limit-rate 2000B

Na primjer:

# curl --limit-rate 2000B 74.125.68.100

5. Korištenje proxyja za povezivanje

Ako trebate provjeriti može li se koristiti proxy poslužitelj, koristite sljedeću sintaksu:

# curl --proxyyourproxy:port http://yoururl.com

6. Provjera URL-a unosom naslova

Da biste riješili određeni problem, možete koristiti Curl za umetanje podataka u zaglavlje. Razmotrite sljedeći primjer zahtjeva s Content-Type:

# curl --header "Content-Type: application/json" http://yoururl.com

Tražimo od curl-a da prenese Content-Type kao application/json u zaglavlju zahtjeva.

7. Dodajte dodatno zaglavlje

Možete dodati zaglavlje zahtjevu pomoću sintakse -header.

# curl --header “X-CustomHeader: GeekFlare” http://yoururl.com

Na primjer:

# curl -v --header "X-CustomHeader: GeekFlare" 74.125.68 * Upravo se spaja() na 74.125.68.100 port 80 (#0) * Pokušavam 74.125.68.100... * Povezano na 74.125.68.100 (74.125. 68.100) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.29.0 > Host: 74.125.68.100 > Accept: */* > X-CustomHeader: GeekFlare >< HTTP/1.1 200 OK

8. Otvorite samo zaglavlje odgovora

Ako želite brzo provjeriti zaglavlje odgovora, tada možete koristiti sljedeću sintaksu da to učinite.

# kovrča --glava http://vašurl.com

# curl -I 74.125.68.100 HTTP/1.1 200 OK Datum: ned, 18. siječnja 2015. 08:31:22 GMT Ističe: -1 Cache-Control: privatno, max-age=0 Content-Type: text/html; charset=ISO-8859-1 Set-Cookie: NID=67=SpnXKTDUhw7QGakIeLxmDSF; expires=Mon, 20-Jul-2015 08:31:22 GMT; put=/; domena=.; HttpOnly P3P: CP="Ovo nije P3P pravilo! Pogledajte http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 za više informacija." Poslužitelj: gws X-XSS-Zaštita: 1; mode=block X-Frame-Options: SAMEORIGIN Alternate-Protocol: 80:quic,p=0.02 Transfer-Encoding: chunked Accept-Ranges: none Vary: Accept-Encoding #

9. Povežite HTTPS/SSLURL adresu i zanemarite sve pogreške SSL certifikata

Ako trebate pristupiti https URL-u koji izbacuje pogrešku certifikata zbog nepodudaranja imena glavnog računala, možete koristiti sljedeću sintaksu.

curl --nesiguran https://yoururl.com

10. Povežite se koristeći određeni protokol (SSL/TLS)

Za spajanje na URL koristeći samo SSL V2/V3 ili TLS, koristite sljedeću sintaksu.

Za povezivanje pomoću SSLV2:

# curl --sslv2 https://yoururl.com

Za povezivanje pomoću SSLV3:

# curl --sslv3 https://yoururl.com

Za povezivanje putem TLS-a:

# curl --tlsv1 https://yoururl.com

11. Učitajte datoteku s FTP poslužitelja

Pomoću cURL-a možete preuzeti datoteku s ftp poslužitelja unosom korisničkog imena i lozinke.

# curl -u korisnik:lozinka -O ftp://ftpurl/style.css

Uvijek možete koristiti "-v" s bilo kojom sintaksom za ispis u opširnom načinu.

Korištenje cURL-a na mreži

Da, moguće je. Možete daljinski izvršiti cURL pomoću sljedećih alata.
Online CURL je kompaktan alat za izdvajanje online URL-a i dodavanje sljedećih parametara.

Connect-timeout --cookie --data --header --head --location --max-time --proxy --request --user --url --user-agent

Primjer izlaza:

cURL alat za izradu naredbenog retka – Omogućuje stvaranje cURL naredbe koju možete koristiti za unos informacija u korisničko sučelje.

Pravi praktičan primjer: morate ponovno pokrenuti usmjerivač (modem) kako biste promijenili IP adresu. Da biste to učinili, trebate se: prijaviti na usmjerivač, otići na stranicu za održavanje i kliknuti gumb "Ponovo pokreni". Ako je ovu radnju potrebno izvesti nekoliko puta, tada se postupak mora ponoviti. Slažete se, ne želite ovu rutinu raditi svaki put ručno. cURL vam omogućuje da sve ovo automatizirate. Sa samo nekoliko cURL naredbi možete postići autorizaciju i dovršiti zadatak na usmjerivaču.

  • cURL je koristan za dohvaćanje podataka s web stranica putem naredbenog retka.
Još jedan praktičan primjer: želimo implementirati prikaz opće statistike za nekoliko stranica. Ako koristimo cURL, onda to postaje potpuno trivijalan zadatak: pomoću cURL-a vršimo autentifikaciju na servisu za prikupljanje statistike (ako je potrebno), zatim (opet koristeći cURL naredbe) dobivamo potrebne stranice, analiziramo podatke koji su nam potrebni; postupak se ponavlja za sve naše stranice, zatim dodajemo i prikazujemo konačni rezultat.

Oni. slučajevi korištenja cURL-a su sasvim realni, iako je cURL u većini 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, proxyje i još mnogo toga.

cURL u PHP-u i naredbenoj liniji

cURL možemo koristiti na dva glavna načina: u PHP skriptama i na naredbenom retku.

Da biste omogućili cURL u PHP-u na poslužitelju, morate odkomentirati redak u datoteci php.ini

Ekstenzija=php_curl.dll

Zatim ponovno pokrenite poslužitelj.

Na Linuxu trebate instalirati curl paket.

Na Debianu, Ubuntuu ili Linux Mintu:

$ sudo apt-get install curl


Na sustavu Fedora, CentOS ili RHEL:

$ sudo yum instalirajte curl

Da bismo jasno vidjeli razliku u korištenju u PHP-u i na naredbenom retku, izvršit ćemo iste zadatke dva puta: prvo u PHP skripti, a zatim na naredbenom retku. Pokušajmo se ne zbuniti.

Dohvaćanje podataka pomoću cURL-a

Dohvaćanje podataka pomoću cURL-a u PHP-u

Primjer u PHP-u:

Sve je vrlo jednostavno:
$target_url- adresa stranice koja nas zanima. Iza 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 handle, koji je u našem primjeru dodijeljen varijabli $ch.

Zatim izvršavamo zahtjev s 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 što 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 "Pogreška curla: " . curl_error($ch); ) curl_close($ch); ?>

Imamo liniju curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);.

curl_setopt- postavlja opcije. Kompletan popis opcija možete pronaći na ovoj stranici:

Skriven od gostiju

$podaci_odgovora = curl_exec($ch);

Sada je vrijednost skripte dodijeljena varijabli $response_data, s kojom se mogu izvoditi 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 pojave grešaka.

Dohvaćanje podataka pomoću cURL-a u naredbenom retku

U naredbeni redak samo upišite

gdje umjesto mi-al.ru- adresu vaše web stranice.

Ako trebate kopirati podatke u varijablu, a ne prikazati rezultat na zaslonu, učinite ovo:

Temp="curl mi-al.ru"

Međutim, neki podaci se još uvijek prikazuju:

Kako biste spriječili njihovo prikazivanje, dodajte ključ -s:

Temp="curl -s mi-al.ru"

Možete vidjeti što je snimljeno:

Echo $temp | manje

Osnovna i HTTP autentifikacija

Autentifikacija je, jednostavno rečeno, unos korisničkog imena i lozinke.

Osnovna autentifikacija je autentifikacija temeljena na poslužitelju. Za to se stvaraju dvije datoteke: .htaccess I .htpasswd

Sadržaj .htaccess datoteke je otprilike ovakav

AuthName "Samo za registrirane korisnike!" AuthType Basic zahtijeva valid-user AuthUserFile /home/freeforum.biz/htdocs/.htpassw


Sadržaj .htpasswd datoteke je otprilike ovakav:

Mijal:CRdiI.ZrZQRRc

Oni. prijava i lozinka hash.

Kada pokušate pristupiti mapi zaštićenoj lozinkom, preglednik će prikazati nešto poput ovoga:

HTTP autentifikacija je slučaj kada unosimo prijavu i lozinku u obrazac na web stranici. Upravo se ova provjera autentičnosti koristi prilikom prijave na e-poštu, forume itd.

Osnovna cURL provjera autentičnosti (PHP)

Postoji web stranica

Skriven 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, rezultat nam se uopće ne sviđa:

Dodajte dva retka:

Curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, "ru-board:ru-board");

Prvi red postavljamo vrstu provjere autentičnosti - osnovnu. 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 provjera autentičnosti (u naredbenom retku) Isto se može postići u naredbenom retku jednim retkom: curl -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/

Nisam zaboravio navesti vrstu provjere autentičnosti, samo što je u cURL-u osnovna vrsta provjere autentičnosti zadana.

Sve je tako brzo funkcioniralo na naredbenom retku da sam iz frustracije napisao sljedeći program. Ona se spaja 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" | jedinstven | 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 koje možete dodati:

  • raspakiranje arhive u navedeni direktorij;
  • pokretanje ažuriranja ConsultantPlus (ovo su ažuriranja za njega);
  • možete provjeriti je li zadnje dostupno ažuriranje već preuzeto ili se pojavilo novo;
  • dodajte sve u Cron za dnevna ažuriranja.
HTTP provjera autentičnosti cURL

HTTP cURL autentifikacija u PHP-u

Moramo znati:

  • adresu na koju poslati podatke za provjeru autentičnosti
  • način slanja GET ili POST
  • prijaviti se
  • lozinka
Ponekad ti podaci nisu dovoljni. Hajdemo shvatiti.

Adresu na koju trebate poslati podatke možete preuzeti iz obrasca za provjeru autentičnosti. Na primjer:

Gledamo imanje akcijski. Oni. zadnja stranica je prijava.php. Trebamo punu adresu, ovako

Skriven od gostiju

Ovdje također nalazimo način slanja: metoda="post"

Također znam prijavu i lozinku: admin i qwerasdfzxcv
Oni. Niz se šalje poslužitelju iz forme metodom POST. Teoretski, naša prethodna skripta, kojoj smo dodali novi redak, trebala bi raditi. Oni. mora se dogoditi autentifikacija.

0) ( echo "Pogreška curla: " . curl_error($ch); ) else () curl_close($ch); ?>

Novi redak u skripti

curl_setopt($ch, CURLOPT_POSTFIELDS, "LOGIN_USER=admin&LOGIN_PASSWD=qwerasdfzxcv");

Ovdje curl_setopt- nama već poznata funkcija za podešavanje opcija za cURL, CURLOPT_POSTFIELDS- ovo je naziv opcije koju postavljamo. CURLOPT_POSTFIELDS sadrži sve podatke koji se prenose POST metodom. Pa sama linija LOGIN_USER=admin&LOGIN_PASSWD=qwerasdfzxcv- radi se o istim podacima koje prenosimo.

Ako pažljivo pregledate obrazac, vidjet ćete da sadrži i skrivena polja. A podaci se mogu obraditi ili nadopuniti JavaScriptom, sve to možete proučavati, ali ja više volim jednostavniju metodu.

Koristim Wireshark. Ovaj program je dizajniran za njuškanje (presretanje) prometa. I u njemu je vrlo zgodno vidjeti što se točno prenosi na stranicu.

Pogledajte ovaj mali video:


Oni. s adresom na koju se prenose podaci, dobro sam pogodio. Ali pokazalo se da je preneseni niz mnogo kompliciraniji.

Unio sam ispravan parametar, a također sam malo izmijenio skriptu tako da ne samo da se prijavljuje, već i prima nešto od usmjerivača:

0) ( echo "Curl error: " . curl_error($ch); ) else ( $target_url2 = "http://188.35.8.64:8080/bsc_wlan.php"; $ch2 = curl_init($target_url2); curl_setopt($ ch2, CURLOPT_RETURNTRANSFER, 1); $response_data2 = curl_exec($ch2); preg_match("|f.ssid.value = "(.*)";|", $response_data2, $results2); $results2 = str_replace("f .ssid.value = "", "", $results2); $results2 = str_replace("";", "", $results2); echo "Naziv Wi-Fi mreže: $rezultati2
"; preg_match("|f_wpa.wpapsk1.value(.*)";|", $response_data2, $results3); $results3 = str_replace("f_wpa.wpapsk1.value", "", $results3); $results3 = str_replace("="", "", $results3); $results3 = str_replace("";", "", $results3); echo "Zaporka Wi-Fi mreže: $rezultati3"; ) curl_close($ch); ?>

Usput, ako vlasnik ažurira lozinku (ali ne ažurira firmver), tada se nova lozinka uvijek može vidjeti na

Skriven od gostiju

(Ovo je dobro poznata ranjivost u D-Link DIR-300, D-Link DIR-320 i D-Link DAP-1353 usmjerivačima).

HTTP cURL provjera autentičnosti na naredbenom retku

Već znamo punu adresu, kao i niz koji treba poslati. Dakle, jednostavno je:

Curl --data "ACTION_POST=LOGIN&FILECODE=&VERIFICATION_CODE=&LOGIN_USER=admin&LOGIN_PASSWD=qwerasdfzxcv&login=Log+In+&VER_CODE=" http://188.35.8.64:8080/login.php

Mislim da je sve jasno, jer smo te rokove već razmotrili. Ako nekome nije jasno neka pita u komentarima.

Primjer korištenja cURL-a za dohvaćanje i analizu podataka bio bi sljedeći skup naredbi:

Curl -s --data "ACTION_POST=LOGIN&FILECODE=&VERIFICATION_CODE=&LOGIN_USER=admin&LOGIN_PASSWD=qwerasdfzxcv&login=Log+In+&VER_CODE=" http://188.35.8.64:8080/login.php > /dev/null && echo -e "nn " && echo "Naziv Wi-Fi mreže" && curl -s http://188.35.8.64:8080/bsc_wlan.php | grep -E "f.ssid.value = "(.)*";" | sed "s/f.ssid.value = "//" | sed "s/";//" && echo "Zaporka Wi-Fi mreže" && curl -s http://188.35.8.64:8080/bsc_wlan.php | grep -E "f_wpa.wpapsk1.(.)*";" | sed "s/f_wpa.wpapsk1.value//" | sed "s/";//" | sed "s/="//"

Ispravnije bi bilo napisati ovaj naslov na sljedeći način: „Složeni” slučajevi autorizacije. Oni. Stavite riječ “komplicirano” u navodnike. Čine se kompliciranima samo na prvi pogled, kada nije jasno: gdje se događa slanje, koji su nazivi polja, što se točno šalje itd.

Ali, zapravo, svi se svode na metode POST ili GET. Da biste razumjeli što se točno šalje, možete spremiti stranicu s obrascem na svoj disk i dodati funkciju za prikaz podataka generiranih za slanje na gumb za slanje. Ili još jednostavnije - kao ja, Wireshark.

Ako su podaci točni, ali ne dolazi do provjere autentičnosti, morate kopati u sljedećim smjerovima:

  • postavite ispravan niz preporuke
  • postavite "ispravan" niz korisničkog agenta.
Sve se to može učiniti pomoću osnovnih cURL metoda, ali neću ulaziti u to. Lekcija je već bila dovoljno duga, ali sam htio pokazati i par trikova s ​​cURL-om.

Savjeti i trikovi cURL

cURL i primanje kolačića uz CURLOPT_COOKIEJAR

Mislim da je već jasno da cURL ispravno obrađuje kolačiće - pohranjuje ih, koristi kada ih poslužitelj zatraži itd. Ali ponekad kolačiće treba spremiti. Za to postoji opcija pod nazivom CURLOPT_COOKIEJAR, ali nije je uvijek moguće koristiti. Tome je posvećen naš prvi trik.

Ponekad, zbog načina na koji je PHP konfiguriran na poslužitelju, opcije kao što su CURLOPT_COOKIEJAR (omogućuje vam spremanje primljenih kolačića u datoteku) i CURLOPT_COOKIEFILE (omogućuje vam korištenje kolačića iz datoteke) nisu nam dostupne. Jer kažu da pomoću ovih opcija možemo ukrasti bilo koju datoteku s njihovog poslužitelja. Evo rješenja za ovaj problem:

1) Ne koristimo CURLOPT_FOLLOWLOCATION
2) Koristite curl_setopt($ch, CURLOPT_HEADER, 1)
3) Prikupite kolačiće iz zaglavlja ovako:

Preg_match_all("|Set-Cookie: (.*);|U", $content, $results); $kolačići = implode(";", $rezultati);

4) Postavite ih pomoću curl_setopt($ch, CURLOPT_COOKIE, $cookies);

Drugi savjet. Od napadača možemo postati žrtve. Kako bismo izbjegli da postanemo žrtva napada čovjeka u sredini, činimo ovo.

Molimo sve, prestanite postavljati postavku CURLOPT_SSL_VERIFYPEER na false ili 0. Ako vaša PHP instalacija nema ažuran skup korijenskih CA certifikata, preuzmite jedan s web stranice curl i spremite ga na svoj poslužitelj:

Skriven od gostiju

Zatim postavite stazu u svojoj datoteci php.ini, na primjer u sustavu Windows:

Curl.cainfo=c:phpcacert.pem

Onemogućavanje CURLOPT_SSL_VERIFYPEER omogućuje napad čovjeka u sredini (MITM), što ne želimo!

Pa, zadnji savjet za danas. Jeste li znali da je moguć veliki broj asinkronih curl zahtjeva?

Za ovo možete koristiti curl_multi_init. Pojedinosti i primjer koda u službenoj dokumentaciji

Skriven od gostiju

Skriven od gostiju


O cURL-u u naredbenom retku

Skriven od gostiju


Drugi dio lekcije cURL također je pripremljen za čitanje na ruskom: "".

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

curl_setopt — Postavlja parametar za CURL sesiju

Popis parametara

cURL ručica dobivena iz curl_init().

Parametar koji se postavlja CURLOPT_XXX.

Vrijednost parametra opcije.

bool:

Parametar Bilješke
CURLOPT_AUTOREFERER PRAVI za automatsko postavljanje polja Preporuka: u zahtjevima preusmjerenim zaglavljem Mjesto:.
CURLOPT_BINARNI PRIJENOS PRAVI za vraćanje sirovog odgovora kada se koristi konstanta CURLOPT_POVRATNI PRIJENOS. Od PHP 5.1.3 ova opcija više nije potrebna: sirovi izlaz uvijek se vraća kada se koristi opcija CURLOPT_POVRATNI PRIJENOS.
CURLOPT_COOKIESESSION PRAVI da uputi trenutnu sesiju da započne novu "sesiju" kolačića. Ovo će uzrokovati da libcurl zanemari sve kolačiće "sesije" koje je trebao učitati iz prethodne sesije. Prema zadanim postavkama, libcurl uvijek sprema i učitava sve kolačiće, bez obzira jesu li "sesijski" ili ne. "Session" kolačići su kolačići koji ne ističu i moraju postojati samo za trenutnu "session".
CURLOPT_CERTINFO PRAVI za izlaz informacija SSL certifikata za strujanje STDERR sa sigurnim vezama. Dodano u cURL 7.19.1. Dostupno počevši od PHP 5.3.2. Za ispravan rad potrebno je omogućiti ovu opciju CURLOPT_VERBOSE.
CURLOPT_CONNECT_ONLY PRAVI govori knjižnici da izvrši potrebnu proxy provjeru autentičnosti i postavljanje veze, ali ne prenosi podatke. Ova opcija je implementirana za HTTP, SMTP i POP3. Dodano u 7.15.2. Dostupno od PHP 5.5.0.
CURLOPT_CRLF PRAVI za pretvaranje Unix završetaka redaka u CRLF.
CURLOPT_DNS_USE_GLOBAL_CACHE PRAVI za korištenje globalne DNS predmemorije. Ova opcija nije niti sigurna i omogućena je prema zadanim postavkama.
CURLOPT_FAILONERROR PRAVI za detaljno izvješće o neuspjehu ako je primljeni HTTP kod veći ili jednak 400. Zadano ponašanje vraća stranicu kao normalnu, zanemarujući kod.
CURLOPT_FILETIME PRAVI kako biste pokušali dobiti datum izmjene udaljenog dokumenta. Ova se vrijednost može dobiti pomoću parametra CURLINFO_FILETIME iz funkcije curl_getinfo().
CURLOPT_FOLLOWLOCATION PRAVI pratiti bilo koji naslov "Lokacija: "šalje poslužitelj u svom odgovoru (imajte na umu da se to događa rekurzivno, PHP će slijediti sva poslana zaglavlja "Lokacija: ", osim kada je postavljena konstanta CURLOPT_MAXREDIRS).
CURLOPT_FORBID_REUSE PRAVI za prisilno zatvaranje veze nakon završetka obrade tako da se ne može ponovno koristiti.
CURLOPT_FRESH_CONNECT PRAVI za prisilno korištenje nove veze umjesto predmemorirane.
CURLOPT_FTP_USE_EPRT PRAVI za korištenje EPRT (i LPRT) za aktivan FTP prijenos. Koristiti NETOČNO kako biste onemogućili EPRT i LPRT i koristili samo PORT.
CURLOPT_FTP_USE_EPSV PRAVI za početno testiranje EPSV naredbe tijekom FTP prijenosa. Ako naredba ne uspije, vratit će se na PASV. Instalirajte u NETOČNO da onemogućite EPSV.
CURLOPT_FTP_CREATE_MISSING_DIRS PRAVI za stvaranje direktorija koji nedostaju ako FTP operacija naiđe na nepostojeći put.
CURLOPT_FTPAPPEND PRAVI za pisanje udaljene datoteke do kraja, umjesto da je prebrišete preko postojeće datoteke.
CURLOPT_TCP_NODELAY Trajno određuje treba li opcija TCP_NODELAY biti postavljena ili izbrisana (1 = postavljeno, 0 = izbrisano). Prema zadanim postavkama opcija je poništena. Dostupno od PHP 5.2.1 za verzije izgrađene s libcurl 7.11.2 ili novijim.
CURLOPT_FTPASCII Nadimak CURLOPT_PRIJENOS TEKSTA. Koristite ovo umjesto toga.
CURLOPT_FTPLISTONLY PRAVI da vrati samo popis imena iz FTP imenika.
CURLOPT_HEADER PRAVI uključiti zaglavlja u izlaz.
CURLINFO_HEADER_OUT PRAVI za praćenje niza upita ručke. Dostupno počevši od PHP 5.1.3. Prefiks CURLINFO_ koristi se posebno.
CURLOPT_HTTPGET PRAVI za resetiranje metode HTTP zahtjeva na GET metodu. Budući da je GET zadana vrijednost, ovaj je parametar potreban samo ako je metoda zahtjeva prethodno promijenjena.
CURLOPT_HTTPPROXYTUNNEL PRAVI za tunel kroz navedeni HTTP proxy.
CURLOPT_MUTE PRAVI da potpuno onemogućite poruke funkcije cURL. Uklonjeno u cURL 7.15.5 (može se koristiti opcija CURLOPT_RETURNTRANSFER)
CURLOPT_NETRC PRAVI za čitanje ~/.netrc datoteke za prijavu i lozinku za udaljeno mjesto s kojim se uspostavlja veza.
CURLOPT_NITKO PRAVI da biste isključili tijelo odgovora iz izlaza. Metoda zahtjeva postavljena je na HEAD. Promjena ove postavke u NETOČNO ne mijenja ga natrag u GET.
CURLOPT_BEZ NAPREDKA

PRAVI da onemogućite indikator napretka na cURL prijenosima.

Komentar:

PHP automatski postavlja ovaj parametar na PRAVI, promijenite ga samo u svrhu otklanjanja pogrešaka.

CURLOPT_NOSIGNAL PRAVI da zanemari bilo koju cURL funkciju koja šalje signale PHP procesu. Ova je opcija omogućena prema zadanim postavkama u SAPI-jima s više niti kako bi se omogućilo ispravno funkcioniranje parametara vremenskog ograničenja.
CURLOPT_POST PRAVI koristiti regularni HTTP POST. Ova POST metoda koristi normalan , koji se obično koristi u HTML obrascima.
CURLOPT_STAVITI PRAVI za preuzimanje datoteke koristeći HTTP PUT metodu. Korištena datoteka mora biti postavljena pomoću opcija CURLOPT_INFILE I CURLOPT_INFILESIZE.
CURLOPT_POVRATNI PRIJENOS PRAVI da vrati rezultat prijenosa kao niz iz curl_exec() umjesto izravnog izlaza u preglednik.
CURLOPT_SIGURAN_UPLOAD PRAVI da biste onemogućili podršku za prefiks @ za preuzete datoteke u CURLOPT_POSTFIELDS, što znači da su vrijednosti proslijeđene sa @ mogu se sigurno prenijeti kao polja. Umjesto prefiksa, možete koristiti opciju CURLFile d. Dodano u PHP 5.5.0 sa zadanom vrijednošću NETOČNO. U PHP 5.6.0 postalo je jednako prema zadanim postavkama PRAVI.
CURLOPT_SSL_VERIFYPEER NETOČNO da spriječite cURL da provjerava certifikat glavnog računala. Pomoću parametra mogu se navesti alternativni certifikati koje treba provjeriti CURLOPT_CAINFO ili imenik s certifikatima navedenim parametrom CURLOPT_CAPATH. Zadano je PRAVI od verzije cURL 7.10. Zadana distribucija instalirana je od cURL verzije 7.10.
CURLOPT_PRIJENOS TEKSTA PRAVI za korištenje ASCII moda za FTP prijenose. Kada koristite LDAP, podaci se vraćaju u običnom tekstu umjesto u HTML-u. Na Windows sustavima nit STDOUT ne postavlja na binarni način rada.
CURLOPT_UNRESTRICTED_AUTH PRAVI za nastavak slanja prijave i lozinke tijekom preusmjeravanja (kada koristite CURLOPT_FOLLOWLOCATION), čak i ako se promijeni naziv hosta.
CURLOPT_UPLOAD PRAVI za pripremu za učitavanje datoteke na poslužitelj.
CURLOPT_VERBOSE PRAVI za prikaz dodatnih informacija. Zapisuje izlaz u tok STDERR, ili datoteku navedenu parametrom CURLOPT_STDERR.

Za sljedeće vrijednosti parametra opcije, parametar vrijednosti mora biti tipa cijeli broj:

Parametar Postavite vrijednost vrijednosti Bilješke
CURLOPT_BUFFERSIZE Veličina međuspremnika koji se koristi za svako čitanje. Međutim, nema jamstva da će ovaj zahtjev biti ispunjen. Dodano u cURL 7.10.
CURLOPT_CLOSEPOLICY Jedna od konstanti CURLCOTREPOLICY_*.

Komentar:

Ova je opcija zastarjela jer nikada nije implementirana u cURL i nije radila.

Uklonjeno u PHP 5.6.0.
CURLOPT_CONNECTTIMEOUT Broj sekundi čekanja pri pokušaju povezivanja. Upotrijebite 0 za čekanje na neodređeno vrijeme.
CURLOPT_CONNECTTIMEOUT_MS Broj milisekundi čekanja prilikom pokušaja povezivanja. Upotrijebite 0 za čekanje na neodređeno vrijeme. Ako je libcurl kompajliran korištenjem sistemskog standardnog razlučivača imena, tada će veza i dalje koristiti punu sekundu čekanja kao vremensko ograničenje, s minimalnim dopuštenim vremenskim ograničenjem od 1 sekunde. Dodano u verziji cURL 7.16.2. Dostupno počevši od PHP 5.2.3.
CURLOPT_DNS_CACHE_TIMEOUT Broj sekundi koliko su DNS zapisi pohranjeni u memoriji. Prema zadanim postavkama, ovaj je parametar 120 (2 minute).
CURLOPT_FTPSSLAUTH Metoda FTP provjere autentičnosti (u aktivnom načinu): CURLFTPAUTH_SSL(SSL se prvo provjerava), CURLFTPAUTH_TLS(TLS se prvo provjerava) ili CURLFTPAUTH_DEFAULT(cURL odlučuje sam za sebe). Dodano u verziji cURL 7.12.2.
CURLOPT_HTTP_VERSION CURL_HTTP_VERSION_NONE (prema zadanim postavkama, CURL odabire koju verziju će koristiti), CURL_HTTP_VERSION_1_0 (forsirati HTTP/1.0) ili CURL_HTTP_VERSION_1_1 (forsirati HTTP/1.1).
CURLOPT_HTTPAUTH

Možete koristiti bitovni operator | (ili) kombinirati nekoliko metoda zajedno. U ovom slučaju, cURL će ispitati poslužitelj za podržane metode autorizacije i odabrati najbolju.

CURLAUTH_ANY je alias CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLAUTH_ANYSAFE je alias CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLOPT_INFILESIZE Očekivana veličina datoteke, u bajtovima, prilikom učitavanja datoteke na udaljeni poslužitelj. Imajte na umu da korištenje ove opcije neće zaustaviti daljnje slanje podataka koji premašuju ovu vrijednost, budući da poslani podaci ovise o rezultatu CURLOPT_READFUNCTION.
CURLOPT_LOW_SPEED_LIMIT Gornji prag za brzinu prijenosa podataka, u bajtovima po sekundi. Provjera se odvija unutar CURLOPT_LOW_SPEED_TIME sekundi, nakon čega PHP smatra prijenos presporom i prekida ga.
CURLOPT_LOW_SPEED_TIME Maksimalan broj sekundi tijekom kojeg brzina prijenosa ne smije premašiti CURLOPT_LOW_SPEED_LIMIT, inače će PHP označiti prijenos kao prespor i zaustaviti ga.
CURLOPT_MAX CONNECTS Maksimalan broj trajnih veza. Kada se dosegne ograničenje, parametar se koristi za određivanje veze koju treba zatvoriti. CURLOPT_CLOSEPOLICY.
CURLOPT_MAXREDIRS Maksimalni broj prihvaćenih preusmjeravanja. Koristite ovu opciju zajedno s opcijom CURLOPT_FOLLOWLOCATION.
CURLOPT_PORT Alternativni priključni priključak.
CURLOPT_POSTREDIR Bitna maska ​​koja sadrži 1 (301 Trajno premješteno), 2 (302 Pronađeno) i 4 (303 Vidi ostalo) za određivanje treba li HTTP POST metoda biti obrađena kada je opcija omogućena CURLOPT_FOLLOWLOCATION ako se dogodila navedena vrsta preusmjeravanja. Dodano u cURL 7.19.1. Dostupan od PHP 5.3.2.
CURLOPT_PROTOKOLI

Bit maska ​​vrijednosti CURLPROTO_*. Ova maska ​​ograničava protokole koje koristi libcurl. To vam omogućuje da libcurl radi s velikim brojem protokola i ograničite rad određenih prijenosa samo na njihov podskup. Prema zadanim postavkama, libcurl koristi sve podržane protokole. Vidi također parametar CURLOPT_REDIR_PROTOKOLI.

Valjane vrijednosti protokola: CURLPROTO_HTTP, CURLPROTO_HTTPS, CURLPROTO_FTP, CURLPROTO_FTPS, CURLPROTO_SCP, CURLPROTO_SFTP, CURLPROTO_TELNET, CURLPROTO_LDAP, CURLPROTO_LDAPS, CURLPROTO_DICT, CURLPROTO_FILE, C URLPRO TO_TFTP, CURLPROTO_ALL

CURLOPT_PROXYAUTH Metode HTTP autorizacije koje se koriste prilikom povezivanja na proxy poslužitelj. Koristite iste maske bitova koje su opisane za parametar CURLOPT_HTTPAUTH. Trenutno su samo CURLAUTH_BASIC i CURLAUTH_NTLM podržani za proxy autorizaciju. Dodano u verziji cURL 7.10.7.
CURLOPT_PROXYPORT Broj priključka proxy poslužitelja na koji se uspostavlja veza. Taj se broj također može postaviti pomoću parametra CURLOPT_PROXY.
CURLOPT_PROXYTYPE Ili CURLPROXY_HTTP (zadano) ili CURLPROXY_SOCKS5. Dodano u cURL 7.10.
CURLOPT_REDIR_PROTOKOLI Bit maska ​​vrijednosti CURLPROTO_*. Ova bitna maska ​​ograničava protokole koje koristi libcurl prilikom preusmjeravanja (s omogućenim parametrom CURLOPT_FOLLOWLOCATION). To vam omogućuje da ograničite skup protokola koji se koriste prilikom preusmjeravanja za neke prijenose. Prema zadanim postavkama, libcurl podržava sve protokole osim FILE i SCP. U verzijama prije 7.19.4 preusmjeravanje se koristilo za sve protokole bez iznimke. Vidi također opis parametra CURLOPT_PROTOKOLI za popis konstanti s vrijednostima protokola. Dodano u verziji cURL 7.19.4.
CURLOPT_RESUME_FROM Početni pomak prijenosa, u bajtovima.
CURLOPT_SSL_VERIFYHOST Koristite 1 za provjeru postojanja zajedničkog imena u SSL certifikatu. Upotrijebite 2 da provjerite postoji li zajedničko ime i odgovara li navedenom hostu. U borbenom okruženju, vrijednost ovog parametra trebala bi biti 2 (postavljeno prema zadanim postavkama). Podrška za vrijednost 1 je uklonjena u cURL 7.28.1
CURLOPT_SSLVERSION Jedna od konstanti CURL_SSLVERSION_DEFAULT (0), CURL_SSLVERSION_TLSv1 (1), CURL_SSLVERSION_SSLv2 (2), CURL_SSLVERSION_SSLv3 (3), CURL_SSLVERSION_TLSv1_0 (4), CURL_SSLVERSION_TLSv1_1(5) ili CURL_SSLVERSION_TLSv1_2 (6).
CURLOPT_TIMECONDITION Metoda interpretacije parametara CURLOPT_TIMEVALUE. Koristite CURL_TIMECOND_IFMODSINCE za vraćanje stranice samo ako se promijenila od vremena navedenog u parametru CURLOPT_TIMEVALUE. Ako stranica nije izmijenjena, vratit će se naslov "304 nije izmijenjeno", što implicira da je parametar CURLOPT_HEADER instaliran u PRAVI. Koristite CURL_TIMECOND_IFUNMODSINCE za suprotan učinak. Zadana vrijednost je CURL_TIMECOND_IFMODSINCE.
CURLOPT_TIMEOUT Maksimalni broj sekundi dopušten za izvršavanje cURL funkcija.
CURLOPT_TIMEOUT_MS Maksimalni broj milisekundi dopušten za izvršavanje cURL funkcija. Ako je libcurl izgrađen korištenjem normalnog razlučivača naziva sustava, tada će ovaj raspon veze i dalje koristiti vremenska ograničenja drugog zaokruživanja, s minimalnim dozvoljenim vremenskim ograničenjem od jedne sekunde. Dodano u verziji cURL 7.16.2. Dostupno počevši od PHP 5.2.3.
CURLOPT_TIMEVALUE Broj sekundi od 1. siječnja 1970. Ovo vrijeme će se koristiti za parametar CURLOPT_TIMECONDITION. Prema zadanim postavkama koristi se parametar CURL_TIMECOND_IFMODSINCE.
CURLOPT_MAX_RECV_SPEED_LARGE Ako brzina preuzimanja prijeđe ovu vrijednost (određenu u bajtovima po sekundi) u prosjeku tijekom cijelog prijenosa, preuzimanje će se pauzirati kako bi se održala prosječna brzina manja ili jednaka ovom parametru. Prema zadanim postavkama, brzina nije ograničena.
CURLOPT_MAX_SEND_SPEED_LARGE Ako učitavanje na poslužitelj prekorači ovu vrijednost (određenu u bajtovima po sekundi) u prosjeku tijekom cijelog prijenosa, učitavanje će se pauzirati kako bi se održala prosječna brzina manja ili jednaka ovom parametru. Prema zadanim postavkama, brzina nije ograničena. Dodano u verziji cURL 7.15.5. Dostupno počevši od PHP 5.4.0.
CURLOPT_SSH_AUTH_TYPES Bitmaska ​​koja se sastoji od jedne ili više konstanti: CURLSSH_AUTH_PUBLICKEY, CURLSSH_AUTH_PASSWORD, CURLSSH_AUTH_HOST, CURLSSH_AUTH_TIPKOVNICA. Instalirati CURLSSH_AUTH_ANY kako bi libcurl samostalno izabrao jedan od njih. Dodano u cURL 7.16.1.
CURLOPT_IPRESOLVE Aplikaciji omogućuje odabir vrste IP adrese s kojom se određuje naziv glavnog računala. Ovo je neophodno ako koristite naziv glavnog računala koji je izveden iz više od jedne verzije IP adrese. Moguće vrijednosti mogu biti CURL_IPRESOLVE_WHATEVER, CURL_IPRESOLVE_V4, CURL_IPRESOLVE_V6, i prema zadanim postavkama CURL_IPRESOLVE_WHATEVER. Dodano u cURL 7.10.8.

Za sljedeće vrijednosti parametra opcije, parametar vrijednosti mora biti tipa niz:

Parametar Postavite vrijednost vrijednosti Bilješke
CURLOPT_CAINFO Naziv datoteke koja sadrži jedan ili više certifikata prema kojima će se čvorovi provjeravati. Ovaj parametar ima smisla samo kada se koristi zajedno s CURLOPT_SSL_VERIFYPEER. Zahtijeva apsolutni put.
CURLOPT_CAPATH Imenik koji sadrži nekoliko CA certifikata. Koristite ovu opciju u kombinaciji s CURLOPT_SSL_VERIFYPEER.
CURLOPT_COOKIE Sadržaj zaglavlja "Kolačić:", koji se koristi u HTTP zahtjevu. Imajte na umu da su višestruki kolačići odvojeni točkom i zarezom nakon čega slijedi razmak (na primjer, " voće=jabuka; boja=crvena")
CURLOPT_COOKIEFILE Naziv datoteke koja sadrži kolačiće. Ova datoteka mora biti u Netscape formatu ili samo HTTP zaglavlja upisana u datoteku. Ako se kao naziv datoteke proslijedi prazan niz, kolačići neće biti spremljeni, ali će njihova obrada i dalje biti omogućena.
CURLOPT_COOKIEJAR Naziv datoteke u koju će se spremiti svi interni kolačići trenutnog prijenosa nakon zatvaranja kontrole, na primjer nakon poziva curl_close.
CURLOPT_CUSTOMREQUEST

Umjesto toga korištena je prilagođena metoda zahtjeva "DOBITI" ili "GLAVA" prilikom postavljanja HTTP zahtjeva. Ovo je korisno za upite "IZBRISATI" ili drugi, rjeđi HTTP zahtjevi. Ispravna značenja bile bi riječi poput "DOBITI", "POST", "SPOJITI" i tako dalje; oni. Nemojte ovdje unositi cijeli red HTTP zahtjeva. Na primjer, indikacija "GET /index.html HTTP/1.0\r\n\r\n" bit će krivo.

Komentar:

Nemojte koristiti ovu značajku dok niste sigurni da poslužitelj podržava ovu vrstu zahtjeva.

CURLOPT_EGDSOCKET Kao CURLOPT_SLUČAJNA_DATOTEKA, osim što je naziv datoteke postavljen na utičnicu Entropy Gathering Daemon.
CURLOPT_KODIRANJE Sadržaj zaglavlja "Prihvati kodiranje: ". To omogućuje dekodiranje zahtjeva. Podržana kodiranja su "identitet", "ispuhati" I "gzip". Ako se proslijedi prazan niz, "" , šalje se zaglavlje koje sadrži sve podržane vrste kodiranja. Dodano u cURL 7.10.
CURLOPT_FTPPORT Vrijednost koja će se koristiti za određivanje IP adrese za FTP "PORT" naredbu. Naredba "PORT" govori poslužitelju na koju se IP adresu treba spojiti. To može biti IP adresa, naziv hosta, naziv mrežnog sučelja (pod Unixom) ili jednostavno "-" za korištenje zadane IP adrese sustava.
CURLOPT_SUČELJE Naziv mrežnog sučelja za korištenje. Može biti ime sučelja, IP adresa ili ime glavnog računala.
CURLOPT_KEYPASSWD Za korištenje privatnog ključa potrebna je lozinka CURLOPT_SSLKEY ili CURLOPT_SSH_PRIVATE_KEYFILE. Dodano u cURL 7.16.1.
CURLOPT_KRB4LEVEL Sigurnosna razina KRB4 (Kerberos 4). Bilo koja od sljedećih vrijednosti (od najslabije do najjače) je točna: "čisto", "sef", "povjerljivo", "privatna".. Ako se navedeni niz razlikuje od zadanih vrijednosti, vrijednost će se koristiti "privatna". Postavljanje ove opcije na NULL potpuno će onemogućiti sigurnost KRB4. U ovom trenutku KRB4 sigurnost radi samo s FTP transakcijama.
CURLOPT_POSTFIELDS Svi podaci koji se prenose u HTTP POST zahtjevu. Za prijenos datoteke navedite prije naziva datoteke @ , a također koristite puni put do datoteke. Vrsta datoteke također se može odrediti pomoću formata " ;tip=mimetip" nakon naziva datoteke. Ovaj parametar može se proslijediti kao url kodirani niz, poput " para1=val1¶2=val2&...", i u obliku niza, čiji će ključevi biti nazivi polja, a vrijednosti će biti njihov sadržaj. Ako je vrijednost niz, zaglavlje Vrsta sadržaja bit će postavljeno na multipart/form-data. Počevši od PHP 5.2.0, prilikom prijenosa datoteka s prefiksom @ , vrijednost mora biti niz. Od PHP 5.5.0, prefiks @ je zastario i datoteke se mogu slati pomoću CURLFile. Prefiks @ može se onemogućiti da se dopuste vrijednosti koje počinju s @ postavljanjem opcije CURLOPT_SIGURAN_UPLOAD u smislu PRAVI.
CURLOPT_PROXY HTTP proxy preko kojeg će se usmjeravati zahtjevi.
CURLOPT_PROXYUSERPWD Prijava i lozinka upisane u obrazac ":" , koristi se pri povezivanju putem proxyja.
CURLOPT_SLUČAJNA_DATOTEKA Naziv datoteke koja se koristi za pokretanje generatora slučajnih brojeva za SSL.
CURLOPT_RANGE Raspon podataka za preuzimanje, u formatu "X-Y", a X ili Y se mogu izostaviti. HTTP protokol također podržava prijenos višestrukih raspona odvojenih zarezima, navedeni su u formatu "X-Y, N-M".
CURLOPT_REFERER Sadržaj zaglavlja "Preporuka:", koji će se koristiti u HTTP zahtjevu.
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 Niz koji sadrži 32 heksadecimalne znamenke. Niz mora biti MD5 kontrolni zbroj javnog ključa udaljenog računala, a libcurl će resetirati vezu s udaljenim hostom sve dok kontrolni zbroj ne odgovara javnom ključu. Ova opcija je samo za prijenos podataka koristeći SCP i SFTP. Dodano u cURL 7.17.1.
CURLOPT_SSH_PUBLIC_KEYFILE Naziv datoteke za vaš javni ključ. Ako nije navedeno, libcurl zadano postavlja datoteku $HOME/.ssh/id_dsa.pub ako je HOME varijabla okruženja postavljena i datoteku "id_dsa.pub" u trenutnom direktoriju ako HOME varijabla okruženja nije postavljena. Dodano u cURL 7.16.1.
CURLOPT_SSH_PRIVATE_KEYFILE Naziv datoteke za vaš privatni ključ. Ako nije navedeno, libcurl zadano postavlja datoteku $HOME/.ssh/id_dsa ako je varijabla okoline HOME postavljena i datoteku "id_dsa" u trenutnom direktoriju ako varijabla okoline HOME nije postavljena. Ako je datoteka zaštićena lozinkom, postavite lozinku koristeći CURLOPT_KEYPASSWD. Dodano u cURL 7.16.1.
CURLOPT_SSL_CIPHER_LIST Popis šifri koje se koriste u SSL prijenosima. Na primjer, RC4-SHA I TLSv1 valjani su popisi šifri.
CURLOPT_SSLCERT Naziv datoteke s ispravno formatiranim PEM certifikatom.
CURLOPT_SSLCERTPASSWD Za korištenje certifikata potrebna je lozinka CURLOPT_SSLCERT.
CURLOPT_SSLCERTTYPE Format potvrde. Podržani formati "PEM"(zadano), "DER" I "ENG". Dodano u cURL verziji 7.9.3.
CURLOPT_SSLENGINE ID mehanizma za šifriranje za SSL privatni ključ naveden u parametru CURLOPT_SSLKEY.
CURLOPT_SSLENGINE_DEFAULT Identifikator mehanizma šifriranja koji se koristi za asimetrične operacije šifriranja.
CURLOPT_SSLKEY Naziv datoteke SSL privatnog ključa.
CURLOPT_SSLKEYPASSWD

Tajna lozinka potrebna za korištenje SSL privatnog ključa određenog parametrom CURLOPT_SSLKEY.

Komentar:

Budući da ovaj parametar sadrži vrijednu lozinku, ne zaboravite držati ovu PHP skriptu na sigurnom mjestu.

CURLOPT_SSLKEYTYPE Vrsta SSL privatnog ključa navedena u parametru CURLOPT_SSLKEY. Podržane su sljedeće vrste ključeva: "PEM"(zadano), "DER" I "ENG".
CURLOPT_URL URL za preuzimanje. Ovaj se parametar također može postaviti prilikom pokretanja sesije pomoću curl_init().
CURLOPT_USERAGENT Sadržaj zaglavlja "Korisnički agent: ", poslan u HTTP zahtjevu.
CURLOPT_USERPWD Prijava i lozinka korišteni tijekom povezivanja, navedeni u formatu ":" .

Za sljedeće vrijednosti parametra opcije, parametar vrijednosti mora biti niz:

Parametar Postavite vrijednost vrijednosti Bilješke
CURLOPT_HTTP200ALIASES Niz HTTP 200 odgovora koji će se tretirati kao ispravni, a ne kao pogrešni. Dodano u verziji cURL 7.10.3.
CURLOPT_HTTPHEADER Niz postavljenih HTTP zaglavlja, u formatu array("Content-type: text/plain", "Content-length: 100")
CURLOPT_POSTQUOTE Niz FTP naredbi koje se izvršavaju na poslužitelju nakon završetka FTP zahtjeva.
CURLOPT_QUOTE Niz FTP naredbi koje se izvršavaju na poslužitelju prije podnošenja FTP zahtjeva.

Za sljedeće vrijednosti parametra opcije, parametar vrijednosti mora biti ručica toka (vraća, na primjer, funkcija fopen()):

Parametar Postavite vrijednost vrijednosti
CURLOPT_DATOTEKA Datoteka u koju će biti zapisan rezultat prijenosa. Zadani izlazni tok STDOUT(prozor preglednika).
CURLOPT_INFILE Datoteka iz koje se podaci trebaju čitati prilikom učitavanja na poslužitelj.
CURLOPT_STDERR Alternativna izlazna datoteka pogreške koja se koristi umjesto toka pogrešaka STDERR.
CURLOPT_WRITEHEADER Datoteka u koju će biti zapisana zaglavlja trenutne operacije.

Za sljedeće vrijednosti parametra opcije, parametar vrijednosti mora biti važeći naziv funkcije ili zatvaranje:

Parametar Postavite vrijednost vrijednosti
CURLOPT_HEADERFUNCTION Funkcija povratnog poziva uzima dva parametra. Prvi parametar je cURL handle, drugi parametar je niz koji sadrži zaglavlja koja treba napisati. Zaglavlja moraju biti napisana pomoću ove funkcije povratnog poziva. Treba vratiti broj zapisanih bajtova.
CURLOPT_PASSWDFUNCTION Funkcija povratnog poziva uzima tri parametra. Prvi parametar je cURL handle, drugi parametar je niz upita za lozinku, a treći parametar je maksimalna duljina lozinke. Trebalo bi vratiti niz koji sadrži lozinku.
CURLOPT_PROGRESSFUNCTION

Funkcija povratnog poziva ima pet parametara. Prvi je deskriptor cURL, drugi je ukupan broj bajtova za koji se očekuje da će biti preuzeti s poslužitelja, treći je broj bajtova koji su već preuzeti, četvrti je ukupan broj bajtova za koji se očekuje da će biti poslani na poslužitelj, i peti je broj već poslanih bajtova.

Komentar:

Funkcija povratnog poziva poziva se samo ako je opcija CURLOPT_BEZ NAPREDKA postaviti na vrijednost NETOČNO.

Možete vratiti vrijednost koja nije nula da biste otkazali prijenos. U tom slučaju će se prikazati pogreška CURLE_ABORTED_BY_CALLBACK.

CURLOPT_READFUNCTION Funkcija povratnog poziva uzima tri parametra. Prvi parametar je cURL handle, drugi parametar je resurs toka proslijeđen cURL-u putem opcije CURLOPT_INFILE, a treći parametar je najveća dopuštena količina podataka za čitanje. Funkcija povratnog poziva mora vratiti niz duljine koja nije veća od tražene količine podataka, obično čitanjem iz prenesenog izvora strujanja. Trebalo bi vratiti prazan niz kao signal za kraj datoteke EOF.
CURLOPT_WRITEFUNCTION Funkcija povratnog poziva uzima dva parametra. Prvi parametar je cURL handle, a drugi parametar je niz koji sadrži podatke koje treba upisati. Podaci se moraju spremiti pomoću ove funkcije. Mora vratiti točan broj zapisanih bajtova, inače će preuzimanje biti prekinuto uz pogrešku.

Ostala značenja:

Povratne vrijednosti

Povratak PRAVI po uspješnom završetku ili NETOČNO u slučaju greške.

Popis promjena

Verzija Opis
5.6.0 Opcija CURL_SAFE_UPLOAD sada ima zadanu vrijednost od PRAVI.
5.6.0 Uklonjena opcija CURLOPT_CLOSEPOLICY i s njim povezana značenja.
5.5.0 Resurs cURL dodaje se kao prvi argument funkciji povratnog poziva CURLOPT_PROGRESSFUNCTION.
5.5.0 Dodana opcija CURLOPT_DIJELJENJE.
5.3.0 Dodana opcija CURLOPT_PROGRESSFUNCTION.
5.2.10 Dodane opcije CURLOPT_PROTOKOLI I CURLOPT_REDIR_PROTOKOLI.
5.1.0 Dodane opcije CURLOPT_AUTOREFERER, CURLOPT_BINARNI PRIJENOS, CURLOPT_FTPSSLAUTH, CURLOPT_PROXYAUTH I CURLOPT_TIMECONDITION.
5.0.0 Dodane opcije CURLOPT_FTP_USE_EPRT, CURLOPT_NOSIGNAL, CURLOPT_UNRESTRICTED_AUTH, CURLOPT_BUFFERSIZE, CURLOPT_HTTPAUTH, CURLOPT_PROXYPORT, CURLOPT_PROXYTYPE, CURLOPT_SSLCERTTYPE I CURLOPT_HTTP200ALIASES.

Primjeri

Primjer #1 Pokretanje CURL sesije i učitavanje web stranice

// kreiraj novi cURL resurs
$ch = curl_init();

/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/

$ch = curl_init();

$data = array("name" => "Foo" , "file" => "@/home/user/test.png" );

Curl_setopt($ch, CURLOPT_URL, "http://localhost/upload.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $podaci);

Curl_exec($ch);
?>

Rezultat pokretanja ovog primjera:

Niz ( => Foo) Niz ( => Niz ( => test.png => slika/png => /tmp/phpcpjNeQ => 0 => 279))

Bilješke

Komentar:

Prosljeđivanje niza na CURLOPT_POSTFIELDS kodira podatke kao multipart/form-data, dok će prosljeđivanje niza kodiranog URL-om kodirati podatke kao aplikacija/x-www-form-urlencoded.