Cum să utilizați CURL printr-un proxy?
Eu sunt în căutarea de a stabili curl pentru a utiliza un server proxy. Url-ul este furnizat de un formular html, care nu a fost o problemă. Fără proxy funcționează bine. Am gasit codul cu privire la acest lucru și alte site-uri, dar ele nu funcționează. Orice ajutor în a găsi soluția corectă ar fi mult mai apreciat. Simt că mai jos sunt aproape, dar eu sunt lipsește ceva. Multumesc.
Mai jos codul l-am adaptat de aici http://www.webmasterworld.com/forum88/10572.htm dar se returnează un mesaj de eroare despre o lipsă T_VARIABLE pe linia 12.
<?
$url = '$_POST[1]';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
curl_setopt($ch, CURLOPT_PROXY, '66.96.200.39:80');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'GET');
curl_setopt ($ch, CURLOPT_HEADER, 1)
curl_exec ($ch);
$curl_info = curl_getinfo($ch);
curl_close($ch);
echo '<br />';
print_r($curl_info);
?>
Mai jos este din https://stackoverflow.com/questions/4802816/curl-through-proxy-returns-no-content
<?
$proxy = "66.96.200.39:80";
$proxy = explode(':', $proxy);
$url = "$_POST[1]";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXY, $proxy[0]);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxy[1]);
curl_setopt($ch, CURLOPT_HEADER, 1);
$exec = curl_exec($ch);
echo curl_error($ch);
print_r(curl_getinfo($ch));
echo $exec;
?>
este în prezent trăiesc pe pelican-cement.com dar, de asemenea, nu funcționează.
UPDATE: Vă mulțumesc pentru tot ajutorul tău, am făcut modificările de mai sus. Acum se întoarce doar un ecran gol.
<?
$url = $_POST['1'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
curl_setopt($ch, CURLOPT_PROXY, '66.96.200.39:80');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'GET');
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_exec ($ch);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);
echo $curl_scraped_page;
?>
Aici este o versiune de lucru cu bug-uri eliminate.
Am adăugat
CURLOPT_PROXYUSERPWD
în cazul în care oricare dintre proxy-uri necesită un nume de utilizator și o parolă. I-am CURLOPT_RETURNTRANSFERla 1, astfel încât datele vor fi returnate la
$curl_scraped_page` variabil.Am scos un al doilea suplimentar
curl_exec($ch);
care s-ar opri variabila fiind returnate. Am consolidat proxy IP și port într-un singur cadru.Am eliminat, de asemenea,
CURLOPT_HTTPPROXYTUNNEL " și " CURLOPT_CUSTOMREQUEST
ca era default.Dacă tu nu't vreau anteturile revenit, comentariu
CURLOPT_HEADER
.Pentru a dezactiva proxy pur și simplu setat la null.
Orice întrebări nu ezitați să întrebați, eu lucrez cu cURL` în fiecare zi.
Am explicat utilizarea diferitelor CURL opțiunile necesare pentru PROXY CURL.
Aici este un bine testat funcția pe care am folosit pentru proiectele mele detaliate cu auto-explicative comentarii
Există de multe ori atunci când porturi, altele decât 80 sunt blocate de firewall server deci codul pare a fi de lucru bine pe localhost dar nu pe server