#1 07.11.07 23:17
php скрипт, сокеты
Привет. Есть такая задача, зайти на страничку, покать себя как пользователя, скачать страничку и уйти.
Как я понял это можно сделать с помощью сокетов, как создвать их я понял, даже поучилось содрать страницу с сервера, но проблема в том что он считает ее только с name.ru, а вот если указываещь страницу name.ru/index.php скрипт ругается на функцию по созданию сокетов. Как сделать так чтобы можно было скачать любую страницу?
Offline
#7 10.11.07 15:58
Re: php скрипт, сокеты
вот код, конструктивная критика только приветствуется :-)
Код::
function GetContent($urlQuery)
{
$queryArray=array();
preg_match_all("!(http:\/\/)?([\.A-Za-z0-9_-]*\.[a-z]{2,4})(\/[A-Za-z0-9.,_@%&?+=\~/-]*)!",$urlQuery,$queryArray);
$host=$queryArray[2][0];
$post_query =$queryArray[3][0];
$userAgent="Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.8.1.6) Gecko/20070802 MultiZilla/1.8.3.2g SeaMonkey/1.1.4";
$service_port = getservbyname('www', 'tcp');
$fp = fsockopen($host, $service_port, $errno, $errstr, 30);
if (!$fp)
{
echo "$errstr ($errno)<br />\n";
}
else
{
$out = "GET ".$post_query." HTTP/1.1\r\n";
$out .= "Host: ".$host."\r\n";
$out .= "User-Agent: ".$userAgent."\r\n";
// $out .= "Content-type: application/x-www-form-urlencoded\r\n";
$out .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n"; $out .= "Accept-Language: ru-ru,ru;q=0.8\r\n";
//$out .= "Accept-Encoding: gzip,deflate\r\n";
$out .= "Accept-Charset: windows-1251\r\n";
$out .= "Keep-Alive: 300\r\n";
//$out .= "Connection: keep-alive\r\n";
$out .= "Cache-Control: max-age=0\r\n";
$out .= "Connection: Close\r\n\r\n";
$content='';
fwrite($fp, $out);
while (!feof($fp))
{
$content.= fgets($fp,5000);
}
fclose($fp);
preg_match("!charset=([A-Za-z-0-9]+)\s!",$content,$charsetV);
$charsetV[1]=strtoupper($charsetV[1]);
if($charsetV[1]!="WINDOWS-1251")
{
$content=iconv($charsetV[1],"windows-1251//IGNORE",$content);
}
return($content);
}
}Исправлено **Relic** (10.11.07 16:02)
Offline

