Для получения информации с других ресурсов в сети есть много разных вариантов. В данной статье рассмотрим вариант получения данных через анонимный прокси-сервер
В предыдущей статье я рассматривал процесс получения данных от стороннего сайта с использованием php-функции file_get_contents(). В данной статье рассмотрим более функциональный способ - с использованием curl и прокси-сервера.
Для начала необходимо найти прокси, через который будет работать данный процесс. В сети есть куча вариантов того, как можно установить свой прокси-сервер на VPS (например, используя 3proxy), либо можно арендовать proxy в любой точке земного шара и настроить работу через него. Я пошел проще - установил на VPS-ку с сайтом tor и настроил работу через него. В итоге, функция получения данных от стороннего сервера приобрела вид:
function GetCurlData($url) { if(strpos($url,'http://')!==false || strpos($url,'https://')!==false){ $altUrl = '/' . str_replace('/', '_', substr(array_pop(explode('://',$url)), 1)); } else { $altUrl = '/' . str_replace('/', '_', substr($url, 1)); } $altUrl = str_replace('//','/',$altUrl); if (file_exists($this->uploadFolder . $url)) { return file_get_contents($this->uploadFolder . $url); } elseif (file_exists($this->uploadFolder . $altUrl)) { return file_get_contents($this->uploadFolder . $altUrl); } else { if(strpos($url,'http://') !== false || strpos($url,'https://')!==false){ } else { $url = $this->domain.$url; } $code = $this->getCurlCode($url); if($code==200){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:9050'); curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); $linkData = curl_exec($ch); if(!curl_errno($ch)){ if (strlen($linkData) > 0) { file_put_contents($this->uploadFolder . $altUrl, $linkData); curl_close($ch); return $linkData; } else { curl_close($ch); return false; } } else { echo 'Ошибка curl: ' . curl_error($ch); } curl_close($ch); } else { echo $url . 'returns code' . $code; } } }
Функция получения кода ответа от сервера имеет вид:
function getCurlCode($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:9050'); curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); curl_setopt($ch, CURLOPT_HEADER, 1); $result = curl_exec($ch); $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); return $code; }
Разработка сайта
Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...
Сопровождение сайта
Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение
Работы по сайту
Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.