(SELECT id,name FROM city WHERE ifcap='1') UNION (SELECT id,name FROM region) ORDER BY name;
Ошибка в Opera при разборе xml (в моем случае rss-лента):
unexpected text (non-whitespace text outside root element)
Решение:
Кодировка файла, отдающего xml, а также всех подключаемых файлов должна быть «UTF-8 без BOM» (в Notepad++ в строке состояния отображается как «ANSI as UTF-8»)
После установки php5 из портов в /usr/local/etc/apache22/httpd.conf
должны присутствовать строки:
LoadModule php5_module libexec/apache22/libphp5.so
<IfModule mod_php5.c> DirectoryIndex index.php index.html </IfModule> <IfModule mod_php5.c> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps </IfModule>
secedit /configure /cfg %windir%\repair\secsetup.inf /db secsetup.sdb /verbose
В примере пароль для соединения с tor через telnet: 11111111.
1. Указать пароль для tor:
C:\Documents and Settings\Администратор>d: D:\>"D:\путь\Tor Browser\App\tor.exe" --hash-password 11111111 Nov 04 12:57:59.609 [notice] Tor v0.2.2.39 (git-bec76476efb71549). This is experimental software. Do not rely on it for strong anonymity. (Running on Windows Server 2003 Service Pack 2 [server]) 16:7993DDC95824CA9560D54E1087F0CB04114C422F80127C7C03B6B1D117
2. Привести секцию [Tor] в vidalia.conf примерно к такому виду:
[Tor] UseRandomPassword=false ControlPassword=11111111 ControlPort=9051 TorExecutable=.\\tor.exe Torrc=..\\Data\\Tor\\torrc DataDirectory=..\\Data\\Tor
3. Настройки Tor (Настройки -> Дополнительное -> Редактировать текущий torrc):
HashedControlPassword 16:1192ACE7BD1DE44D607510D709DB2B1AED97C89D54FCFE28B27DBD567A
4. Настройка privoxy:
Orptions -> Edit Main configuration -> Примерно 1280 строка — добавляются строки:
forward-socks4a / 127.0.0.1:9050 . forward-socks4 / 127.0.0.1:9050 . forward-socks5 / 127.0.0.1:9050 .
5. Функция PHP:
function tor_new_identity($tor_ip='127.0.0.1', $control_port='9051', $auth_code=''){ $fp=fsockopen($tor_ip, $control_port, $errno, $errstr, 30); if (!$fp) return false; fputs($fp, "AUTHENTICATE $auth_code\r\n"); $response = fread($fp, 1024); list($code, $text) = explode(' ', $response, 2); if ($code != '250') return false; fputs($fp, "signal NEWNYM\r\n"); $response = fread($fp, 1024); list($code, $text) = explode(' ', $response, 2); if ($code != '250') return false; fclose($fp); return true; }
6. Вызов:
tor_new_identity('127.0.0.1','9051','11111111');
Пример работы в скрипте:
function CreateContext() { GetNewIdentity(); $curent_proxy='127.0.0.1:8118'; $opts=array('http'=>array('method'=>"GET",'header'=>"Accept-language: en\r\n"."Cookie: yandex_gid=213\r\n",'user_agent'=>'Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en-US; rv:1.9.2.28) Gecko/20120306 Firefox/3.6.28','proxy'=>$curent_proxy,'request_fulluri'=>true)); $context=stream_context_create($opts); return $context; } function GetNewIdentity() { if (tor_new_identity('127.0.0.1','9051','11111111')) { sleep(2); } else { GetNewIdentity(); } }
$data=file_get_html('http://site.ru/',false,CreateContext());
$opts=array('http'=>array('proxy'=>'proxy_adress:proxy_port','request_fulluri'=>true)); $context=stream_context_create($opts); $data=file_get_html('http://site.ru/',false,$context);