@Miryl

Curl proxy с переменными из файла PHP?

Всем здравствуйте, помогите, пожалуйста
Мне нужно подключиться к целевому сайту через прокси сервера, эти прокси сервера должны браться списком из файла, их будет несколько. Я примерно прикидываю, что это делается через curl, proxy и fopen, но сколько ни пыталась, ничего не получается.
Прикрепила код, который писала
<?php
	if ($ch=curl_init())
	{
	curl_setopt($ch, CURLOPT_URL, 'ссылка');
	curl_setopt($ch, CURLOPT_TIMEOUT, 5);
	curl_setopt($ch, CURLOPT_PROXY, $x:$y);
		$x=fopen("C:\Users\...\ip.txt", "r"); //айпи прокси
			if ($x) 
			while (($line=fgets($x)) !==false) {
				}
				fclose($x);
			} else {
			}
		$y=fopen("C:\Users\...\port.txt", "r"); //порты прокси
		if ($y) 
		while (($line=fgets($y)) !==false) {
				}
				fclose($y);
			} else {
			}
	curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
	curl_setopt($ch, CURLOPT_FAILONERROR, true);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 3);
	$result=curl_exec($ch);
	echo $result;
	}
?>
  • Вопрос задан
  • 1424 просмотра
Пригласить эксперта
Ответы на вопрос 1
Softer
@Softer
Для начала пишем файл proxies.txt в формате IP:PORT. Одна строка - одна связа прокси-порт
<?php
  if ($ch=curl_init())
  {
  curl_setopt($ch, CURLOPT_URL, 'ссылка');
  curl_setopt($ch, CURLOPT_TIMEOUT, 5);
  $proxies = file ("C:\Users\...\proxies.txt"); // Кстати, я не уверен что в венде так пути писать надо
  $proxy = $proxies[rand(0,count($proxies) - 1)]; // Берем случайный прокси. "-1" - потому что count вернет число элементов, а не последний индекс. Отсчет-то с 0 начинается.
  curl_setopt($ch, CURLOPT_PROXY, "$proxy"); // Это надо делать ПОСЛЕ присваивания переменной $proxy значения. Ибо если делать перед - что в ней должно быть? Правильный ответ - ничего :)
  curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  curl_setopt($ch, CURLOPT_FAILONERROR, true);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 3);
  $result=curl_exec($ch);
  echo $result;
  }
?>


Как-то так. Писалось на коленке, мог где-то ошибиться.
PS: Стоит еще почитать основы :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы