Официальный сайт студ.городка НГТУ
Программирование и БД » php скрипт, сокеты 

#1  07.11.07 23:17

php скрипт, сокеты

Привет. Есть такая задача, зайти на страничку, покать себя как пользователя, скачать страничку и уйти.
Как я понял это можно сделать с помощью сокетов, как создвать их я понял, даже поучилось содрать страницу с сервера, но проблема в том что он считает ее только с name.ru, а вот если указываещь страницу name.ru/index.php скрипт ругается на функцию по созданию сокетов. Как сделать так чтобы можно было скачать любую страницу?

Offline

#2  08.11.07 00:15

Re: php скрипт, сокеты

посмотри в сторону PEAR http

Offline

#3  08.11.07 10:27

Re: php скрипт, сокеты

**Relic** написал(а):

Как сделать так чтобы можно было скачать любую страницу?

почитай про stream-функции и какие хелперы там существуют... и неплохо бы изучить HTTP-заголовки, какие запросы и к чему там можно посылать...

Offline

#4  08.11.07 10:29

Re: php скрипт, сокеты

Нашел примерчик с сокетами :-) всем спасибо.

Offline

#5  09.11.07 23:16

Re: php скрипт, сокеты

**Relic**, код в студию... тоже кой че хочу сделать )

Offline

#6  09.11.07 23:20

Re: 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

#8  10.11.07 20:59

Re: php скрипт, сокеты

**Relic**, tnx )

Offline

Программирование и БД » php скрипт, сокеты 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.156 сек.
Выполнено 14 запросов.