cURL I.

A cURL library segítségével könnyedén hajtatunk végre bonyolultabb http kéréseket is.
Nézzük hogyan tudunk vele megnyitni egy weboldalt:

#elinditjuk a  cURL sessiont
$ch = curl_init();
#megadjuk a beallitasokat
#az megnyitni kivant url
curl_setopt($ch, CURLOPT_URL, "google.com");
#a valaszt nem akarjuk kozvetlenul output-olni
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
#vegrehajtjuk a kerest
$result= curl_exec($ch);
#lezarjuk a session-t hogy felszabaditsuk a rendszer-eroforrasokat.
curl_close($ch);


Ezzel a kóddal a weboldalt tartalmát a $result valtozóba raktuk. Ebben az esetben a file_get_contents függvény-el ezt rövidebb kóddal is megoldhattuk volna, azonban ha nem tudjuk egy oldalról hogy elérhető e akkor a file_get_contents használata okozhat egy időtúllépést nem elérhető oldalnál ami megállítja a kódunkat. Tehát ha egyszerű kérést kell végrehajtani megbízható oldalon akkor használhatjuk a file_get_contents.
Ahhoz hogy a cURL ne csináljon időtúllépést ha nem elérhető oldal az alábbi megoldást kell alkalmaznunk:

$options = array(
                 CURLOPT_URL => 'http://www.google.com/',#url megadasa
                 CURLOPT_RETURNTRANSFER => 1,#nem akarunk kozvetlen output-ot
                 CURLOPT_CONNECTTIMEOUT => 5 # 5 masodperc-es varakozas utan megszakitjuk a kerest

                );
$ch = curl_init();
curl_setopt_array($ch, $options);
#megcsinaljuk a http kerest
$result = curl_exec($ch);
#lezarjuk a session-t hogy felszabaditsuk a rendszer-eroforrasokat.
curl_close($ch);

A fenti kód két dologban különbözik az előzőtől: itt már egy tömbön keresztül adjuk meg a beállításokat és a beállításokban szerepel az időtúllépés értéke is.
A fenti kódot még lehet tovább bővíteni, mert alapból az átirányításokat a cURL nem nyitja meg,de megadhatjuk neki hogy kövesse le azokat is,valamint a referert is beállíthatjuk ha szeretnénk :

$options = array(
                 CURLOPT_URL => 'http://www.google.com/',#url megadasa
                 CURLOPT_RETURNTRANSFER => 1,#nem akarunk kozvetlen output-ot
                 CURLOPT_CONNECTTIMEOUT => 5 ,# 5 masodperc-es varakozas utan megszakitjuk a kerest
                 CURLOPT_MAXREDIRS      => 5,#maximum 5 atiranyitasig kovesse az atiranyitasokat
                 CURLOPT_REFERER => "seo.forum.hu"#beallitjuk a referert

);
$ch = curl_init();
curl_setopt_array($ch, $options);
#megcsinaljuk a http kerest
$result = curl_exec($ch);
#lezarjuk a session-t hogy felszabaditsuk a rendszer-eroforrasokat.
curl_close($ch);

Az eddigiek GET kérések voltak,de a cURL segítségével POST kérést is könnyen végezhetünk. Tehát ha automatikusan szeretnénk egy form-ot egy weboldalon elküldeni és az POST-al küldi az adatokat akkor a cURL-al a formot végrehajtó kódot meg tudjuk hívni es ugyanazt az eredményt kapjuk mintha manuálisan küldtük volna el. Ezt a megoldást használva egyszerűen össze lehet rakni egy brute-force scriptet(erről is írni fogok hamarosan). De most tegyük fel hogy egy webáruház termék keresőjét szeretnénk használni és az POST-al működik. Hogy egyszerű legyen a példa tegyük fel hogy kulcsszavas keresést akarunk végezni.
A html form ami a webshop oldalán található így néz ki:

<form action="celurl.php" method="post">
<label>Kulcsszo</label><input name="keyword" type="text" />
 
<input name="search" type="submit" />
</form>

Valoszinűleg a celurl.php-ban a programozó ellenőrzi hogy a $_POST definialva van e,illetve én még ellenőrizném hogy nem üres e,illetve hogy a POST-on jövő search definiálva van e. Tehát az alábbi adatoknak kell a post-ban szerepelnie: keyword,search. Akkor lássuk a kódot:

$options = array(
                 CURLOPT_URL =&gt; 'http://www.pisti-shopja.com/',#url megadasa
                 CURLOPT_RETURNTRANSFER => 1,#nem akarunk kozvetlen output-ot
                 CURLOPT_CONNECTTIMEOUT => 5 ,# 5 masodperc-es varakozas utan megszakitjuk a kerest
                 CURLOPT_REFERER => "google.com"#beallitjuk a referert
                 CURLOPT_POST => 1,#post kerest akarunk kuldeni
                 CURLOPT_POSTFIELDS     => "keyword=".urlencode("a kulcsszo amire keresunk")."&amp;search=1"#a post tartalma(nev-ertek parok)

                );
$ch = curl_init();
curl_setopt_array($ch, $options);
#megcsinaljuk a http kerest
$result = curl_exec($ch);
#lezarjuk a session-t hogy felszabaditsuk a rendszer-eroforrasokat.
curl_close($ch);

Ezután a kérés után a keresés utáni oldalnak a html-kódja lesz a $result változóban.

Az eddigiek csak az alapjai a cURL-nak és rengeteg lehetőség rejlik benne. Ha tehetem folyatom még a bemutatását.


Cimkék: ,

 
 
 

Szólj hozzá!

Comment Spam Protection by WP-SpamFree