Saya mencari untuk mengatur curl untuk menggunakan server proxy. Url disediakan oleh formulir html, yang tidak menjadi masalah. Tanpa proxy itu berfungsi dengan baik. Saya telah menemukan kode pada ini dan situs lain, tetapi mereka tidak berfungsi. Setiap bantuan dalam menemukan solusi yang tepat akan sangat dihargai. Saya merasa bahwa bawahnya dekat, tetapi saya kehilangan sesuatu. Terima kasih.
Kode di bawah ini saya adaptasi dari sini http://www.webmasterworld.com/forum88/10572.htm tetapi mengembalikan pesan kesalahan tentang T_VARIABLE yang hilang pada baris 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);
?>
Di bawah ini dari curl hingga proxy tidak mengembalikan konten
<?
$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;
?>
saat ini hidup di pelican-cement.com tetapi juga tidak berfungsi.
PEMBARUAN: Terima kasih atas semua bantuan Anda, saya membuat perubahan di atas. Sekarang hanya mengembalikan layar kosong.
<?
$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;
?>
$_POST['1']
Jawaban:
Ini adalah versi yang berfungsi dengan bug Anda dihapus.
Saya telah menambahkan
CURLOPT_PROXYUSERPWD
jika ada proksi Anda memerlukan nama pengguna dan kata sandi. Saya menetapkanCURLOPT_RETURNTRANSFER
ke 1, sehingga data akan dikembalikan ke$curl_scraped_page
variabel.Saya menghapus tambahan kedua
curl_exec($ch);
yang akan menghentikan variabel yang dikembalikan. Saya menggabungkan IP proxy dan port Anda ke dalam satu pengaturan.Saya juga menghapus
CURLOPT_HTTPPROXYTUNNEL
danCURLOPT_CUSTOMREQUEST
karena itu adalah default.Jika Anda tidak ingin tajuk dikembalikan, beri komentar
CURLOPT_HEADER
.Untuk menonaktifkan proxy, cukup setel ke nol.
Setiap pertanyaan jangan ragu untuk bertanya, saya bekerja dengan
cURL
setiap hari.sumber
Saya telah menjelaskan penggunaan berbagai opsi CURL yang diperlukan untuk CURL PROXY.
sumber
Berikut adalah fungsi yang telah teruji dengan baik yang saya gunakan untuk proyek saya dengan komentar penjelasan diri yang terperinci
Ada beberapa kali ketika port selain 80 diblokir oleh firewall server sehingga kode tersebut tampaknya berfungsi dengan baik di localhost tetapi tidak pada server
sumber
/etc/ssl/certs
pada Debian / Ubuntu, misalnya)