Cum sa iei response-ul unei pagini?
11Daca ai dorit vreo data sa lucrezi cu site-uri externe si sa te folosesti de informatiile ce sunt puse la dispozitie te-ai izbit de problema extragerii continutului.Cum poti face asta?
Evident,exista multe functii ce iti pun la dispozitie acest lucru,insa am preferat sa prezint o functie ce inglobeaza niste componente deja consacrate si anume curl si file_get_contents.
function getResponsePage($page) { if(function_exists('curl_init')) //daca avem curl activat { $obj = curl_init(); curl_setopt($obj, CURLOPT_URL, htmlspecialchars($page)); //pagina la care dorim sa ne conectam curl_setopt($obj,CURLOPT_USERAGENT,htmlspecialchars($_SERVER['HTTP_USER_AGENT'])); //browserul cu care ne vom conecta curl_setopt($obj, CURLOPT_RETURNTRANSFER, 1); //setam variabila ce va spune ca dorim response-ul paginii $response = curl_exec($obj); //primim raspunsul curl_close($obj); //inchidem obiectul initializat } else if(function_exists('file_get_contents') && ini_get('allow_url_fopen') == 1) //daca exista file_get_contents { $response = file_get_contents(htmlspecialchars($page)); } return ($response != "" ? $response : FALSE); }
Pentru a obtine raspunsul paginii http://www.worldit.info va trebui doar sa apelati functia,cu argumentul corect :
$response = getResponsePage("http://www.worldit.info"); echo $response;
Aceasta functie va returna continutul paginii,sau FALSE in cazul in care raspunsul este nul.
Am omis sa intru in detalii asupra posibilitatilor ce le aveti folosind curl deoarece acestea vor fi abordate intr-un articol viitor. 😀
Acesta este primul articol/snippet dintr-o viitoare promitatoare serie de articole si tutoriale PHP,daca doriti sau aveti neclaritati in legatura cu anumite lucruri nu ezitati sa spuneti.
Salut,
pentru a prelua response-ul unei pagini am vevoie de xml-ul acelei pagini?Nuh?
acuma mi-am dat seama ..defapt intrebarea mea era alta dintr-un RSS cum preiau ?
In cazul in care vei dori sa preiei RSS`ul si sa`l prelucrezi va trebui sa faci ceva de genul cum e in feedul worldit :
$response = getResponsePage(„http://www.worldit.info/feed/”);
Maine vreau sa fac un articol referitor la procesarea unui feed. 😀
OK..atunci astept articolul tau..
Singura problema e ca unele pagini au dezactivat file_get_contents sau fopen, deci singura solutie e curl.
Asta e problema lor, noi nu putem sa prezicem setarile, doar le putem testa si cauta alternative. O functie completa ar putea include : curl,file_get_contents, fopen, socks. Insa in 90% din cazuri una din primele 3 este activa.
function_exists(‘file_get_contents’)
Mai trebuie sa fie allow_url_fopen on. 🙂
Aveam senzatia ca am precizata asta.Mersi de avertisment. 😀
[…] pentru a extrage itemii din aceasta. Ne vom folosi de cunostintele dobandite recent,si anume de aflarea response-ului unei pagini. Observam ca aceasta functie este de baza in cazul in care dorim sa lucram cu surse externe si nu […]
[…] din articolele noastre recente am invatat cum sa preluam response-ul unei pagini.In acest articol ne vom folosi de functia invatata atunci pentru a prelua response-ul […]
[…] externa. O prima introducere in aceasta tehnica am abordat-o in urma cu ceva vreme cand am aratat cum putem descarca continutul HTML al unei pagini web. Mai tarziu am publicat un mic tutorial in care avem explicatii cuprinzatoare cu privire la […]