Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Чтение 1 символа
 
 автор: emas   (18.11.2006 в 00:21)   письмо автору
 
 

Реально ли через сокет прочесть только 1 символ а потом разорвать коннект?

   
 
 автор: Unkind   (18.11.2006 в 00:23)   письмо автору
 
   для: emas   (18.11.2006 в 00:21)
 

Можно, конечно...А что хотите-то? Чувствую что-то нехорошее...;)

   
 
 автор: emas   (18.11.2006 в 00:33)   письмо автору
 
   для: Unkind   (18.11.2006 в 00:23)
 

Ну мне надо узнать есть ли что-нить на странице если хоть что-нить то.... а если грузить всё то займёт больше времяни ...

   
 
 автор: emas   (18.11.2006 в 12:41)   письмо автору
 
   для: emas   (18.11.2006 в 00:33)
 

эй

   
 
 автор: Саня   (18.11.2006 в 13:24)   письмо автору
 
   для: emas   (18.11.2006 в 12:41)
 

Одним сомволом тут не обойтись. Он всегда будет "H", при успешном соединении с сервером. Нужно просто прочитать только первую строку. Если там "HTTP/1.0 200 OK"/ значит страница существует, если же "HTTP/1.0 404 Not Found", то не существует. Версия протокола может быть как 1.0, так и 1.1 - учтите это.

   
 
 автор: emas   (18.11.2006 в 23:22)   письмо автору
 
   для: Саня   (18.11.2006 в 13:24)
 

да но как ограничить ?

   
 
 автор: Саня   (19.11.2006 в 00:26)   письмо автору
 
   для: emas   (18.11.2006 в 23:22)
 

Что ограничить? А вообще, страница будет загружена вся. Так что никакие махинации с уменьшением трафика не пройдут.

   
 
 автор: XPraptor   (19.11.2006 в 03:38)   письмо автору
 
   для: Саня   (19.11.2006 в 00:26)
 

С фига ли? А второй параметр при считывании данных из сокета для чего вам дан?
$str_return=fgets($socket_handle, size(bytes));

   
 
 автор: emas   (19.11.2006 в 12:39)   письмо автору
 
   для: XPraptor   (19.11.2006 в 03:38)
 

>С фига ли? А второй параметр при считывании данных из сокета для чего вам дан?
>$str_return=fgets($socket_handle, size(bytes));

ой блин... я ваще ступил))) ладно спасибо за помощь )))

   
 
 автор: Саня   (19.11.2006 в 19:01)   письмо автору
 
   для: XPraptor   (19.11.2006 в 03:38)
 

С фига ли? А второй параметр при считывании данных из сокета для чего вам дан?
$str_return=fgets($socket_handle, size(bytes));

Ну я могу и 10 сивлолов считать, а могу и while ( !feof($socket_handle) ) $str_return .= fgets($socket_handle, 128), тогда получу всю страницу. Вы путаете размеры считываемой информации из сокета с размером информации в самом сокете. Можно прочитать как один символ, так и всю страницу - всё равно в сокет изначально попадёт всё (это при GET-запросе). Таким образом, что $str_return=fgets($socket_handle, size(bytes)), что while ( !feof($socket_handle) ) $str_return .= fgets($socket_handle, 128) никак не повлияют на трафик между серверами. Единственный выход уменьшить трафик, как уже сказали, запрашивать не GET, а HEAD, тогда вернутся только заголовки.

   
 
 автор: cheops   (19.11.2006 в 12:43)   письмо автору
 
   для: emas   (18.11.2006 в 00:21)
 

Можно поступить следующим образом
<?php
  
// Устанавливаем содинение
  
$fp fsockopen("www.softtime.ru"80$errno$errstr30);
  if (!
$fp) exit("Нет соединения<br>");

  
// Посылаем запрос
  
$out "GET / HTTP/1.1\r\n";
  
$out .= "Host: www.softtime.ru\r\n";
  
$out .= "Connection: Close\r\n\r\n";
  
fwrite($fp$out);

  
// Читаем один символ
  
echo fgets($fp1);

  
// Закрываем соединение
  
fclose($fp);
?>

   
 
 автор: Trianon   (19.11.2006 в 14:31)   письмо автору
 
   для: cheops   (19.11.2006 в 12:43)
 

Только запрашивать лучше HEAD а не GET

   
 
 автор: XPraptor   (19.11.2006 в 17:26)   письмо автору
 
   для: Trianon   (19.11.2006 в 14:31)
 

Это точно! :) Он заранее только заголовки вернет, и символы можно не ограничивать, а по заголовкам посмотреть что там за страница.

Кстаит, если вернулся заголовок 200OK, это еще не значит, что страница нормальная. Сейчас все больше modrewrite используют, либо в .htaccess вписывают свой адрес 404 страницы, а тогда заголовок вернется 200OK. Поэтому узнать по заголовку о странице скоро станет совсем невозможно. Придется все же качать некоторую часть страницы для проверки.

   
 
 автор: Unkind   (19.11.2006 в 18:21)   письмо автору
 
   для: XPraptor   (19.11.2006 в 17:26)
 

либо в .htaccess вписывают свой адрес 404 страницы, а тогда заголовок вернется 200OK
Вы что имеете ввиду? ErrorDocument 404? Проверьте..."HTTP/1.0 404 Not Found"...
mod_rewrite'ом сделать тоже не выйдет, если заранее, конечно, не знать, какую именно несуществующую страницу он запрашивает...

http://softtime.ru/this%5Fpage%5Fdoesn%27t%5Fexists

cmd> GET /this%5Fpage%5Fdoesn%27t%5Fexists HTTP/1.0
cmd> User-Agent: Unkind
cmd> Host: softtime.ru
cmd> 
hdr> HTTP/1.1 404 Not Found
hdr> Date: Sun, 19 Nov 2006 15:23:53 GMT
hdr> Server: Apache
hdr> X-Powered-By: PHP/5.1.4
hdr> Content-Length: 1246
hdr> Connection: close
hdr> Content-Type: text/html
RequestDone Error = 0
StatusCode = 404

   
 
 автор: XPraptor   (20.11.2006 в 03:57)   письмо автору
 
   для: Unkind   (19.11.2006 в 18:21)
 

Я имею ввиду это:

ErrorDocument 404 http://www.site.ru/404.php
RewriteEngine On
RewriteBase /

RewriteRule ^404.php /index.php

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования