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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Функция не работает должным образом, прошу совета

Сообщения:  [1-4] 

 
 автор: mihdan   (21.06.2009 в 02:34)   письмо автору
 
   для: Dimon-RU   (19.06.2009 в 13:34)
 

<?php
$ts
=""
    while(!
feof($fp)) 
    { 
        
$p=fgets($fp,200); 
        
$p=iconv("UTF-8","windows-1251",$p); 
        
$ts=strtolower($ts.$p); 
        
$ts=str_replace("\n","",$ts); 
        
$ts.=str_replace("\r","",$ts); 
    } 

echo 
$ts;
?>

  Ответить  
 
 автор: Dimon-RU   (19.06.2009 в 15:42)   письмо автору
 
   для: Петр   (19.06.2009 в 14:29)
 

Изменил все, как вы написали. По-прежнему во всех случаях выдает единицу, даже когда надо выдавать ноль...

  Ответить  
 
 автор: Петр   (19.06.2009 в 14:29)   письмо автору
 
   для: Dimon-RU   (19.06.2009 в 13:34)
 

операторы:
exit;
fclose($fp);
надо поменять местами, сначала закрыть, потом выйти.

strpos($ts,$topic) лучше зкаменить на stripos($ts,$topic) (это регистронезависимая функция, в PHP5)

  Ответить  
 
 автор: Dimon-RU   (19.06.2009 в 13:34)   письмо автору
 
 

function is_message($topic,$address,$host)
{
    
    $address = str_replace("http://","",$address);
    $host = rtrim(str_replace("http://","",$host),'/');

    $address = str_replace($host,"",$address);
    $topic = strtolower($topic);
    if($address == $host)
    {
        $address="";
    }
    
        $fp=fsockopen($host,80);
    if(!$fp)
    {
        return 0;
        exit;
        fclose($fp);
    }
    
    fputs($fp,"GET /$address HTTP/1.1\r\n");
    fputs($fp, "Host: $host\r\n");
    fputs($fp, "Connection: close \r\n");
    fputs($fp, "\r\n");
    
    $ts="";
    while(!feof($fp))
    {
        $p=fgets($fp,200);
                $p=iconv("UTF-8","windows-1251",$p);
        $ts=strtolower($ts.$p);
        $ts=str_replace("\n","",$ts);
        $ts=str_replace("\r","",$ts);
    }
    fclose($fp);
    if(strpos($ts,$topic)!==false)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}


Собственно все время выдает единицу, хотя полно случаев, когда нужно выдавать ноль. Подскажите пожалуйста, в чем проблема, буду благодарен!

  Ответить  

Сообщения:  [1-4] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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