@jistulamle

Почему не коректно отрабатывается условие if?

Есть следующие функции:
//  Проверка доступности сайта через прокси
function checkProxy($proxy = null)
{
	if (!empty($proxy)) {

		//	Заголовок запроса
	    Curl::sampleCurl()->addHttpheaders([
	        "User-Agent"      => 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0', 
	        "Accept"          => "application/json, text/javascript, */*; q=0.01", 
	        "Accept"          => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
	        "Accept-Language" => "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3"
	        ]);

	    //	Подстановка прокси в запрос
	    Curl::sampleCurl()->setProxy($proxy);


	    $response = Curl::sampleCurl()->post('https://site.com');
	    if (preg_match('/ih" value="(\w+)/', $response)) {
	        return true;
	    }
	}
}

function newProxy($i = 0)
{
    $proxy_list = getProxy();	//	getProxy() получает список прокси в виде ip:port
    while ($i < sizeof($proxy_list)) {

    	//	Проверка работоспособности прокси и отсутствие дубликата
        if (checkProxy($proxy_list[$i]) && !DataBase::Db()->checkRow('SELECT count(proxy) FROM ' . Config::DB_TABLE . ' WHERE proxy="' . $proxy_list[$i] . '"')) {
            $proxy = $proxy_list[$i];
            break;
        }
    ++$i;    
    }
    if (!empty($proxy)) return $proxy;
}


если вызываю вот так:
if (!checkProxy('179.24.4.164:8080')) {
   echo 'Новая прокся:  ' . newProxy() . '<br />';
}


выдается:
5aa8df68ba1e4837278387.png
если просто вызвать:
echo 'Новая прокся: ' . newProxy() . '<br />';
выдается ip нормально:
5aa8e0107e3ce682660128.png

Вроде все расписал, понятно в чем загвоздка?
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ответы на вопрос 1
добавьте в конце функции checkProxy
return false;
Ответ написан
Ваш ответ на вопрос

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

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