Поэтому я пытаюсь перейти на сайт с луком, например: facebookcorewwwi.onion
Я хотел бы иметь следующий код:
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
curl_setopt($curl, CURLOPT_URL, 'http://facebookcorewwwi.onion/');
curl_setopt($curl, CURLOPT_TIMEOUT, 60);
curl_setopt($curl, CURLOPT_HTTPGET, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_PROXY, '127.0.0.1:9050');
curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
$html = curl_exec($curl);
var_dump($html);
Это дает следующий вывод:
BOOL (ложь)
все же это не то, что я хочу в результате, я хочу фактическое содержание страницы!
inb4: да у меня открыт браузер tor
curl_error выдает следующую ошибку:
Ошибка: не удалось подключиться к порту 12750.0.1 9050: соединение отклонено
Браузер Tor по умолчанию использует порт 9150 для SOCKS, где по умолчанию для демона Tor в Linux или Expert Bundle в Windows — 9050.
Если вы переключитесь на порт 9150, вы сможете успешно передавать через Tor.
От PHP документы за curl_exec
:
Возвращает ИСТИНА в случае успеха или ЛОЖЬ в случае неудачи. Однако, если установлена опция CURLOPT_RETURNTRANSFER, она вернет результат в случае успеха, FALSE в случае ошибки.
Если curl_exec
возвращает логическое значение false, произошла ошибка. Попробуйте получить ошибку:
$html = curl_exec($curl);
if ( $html === false ) {
echo 'Error: ' . curl_error($curl);
}