|
|
|
|
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;
}
}
|
Собственно все время выдает единицу, хотя полно случаев, когда нужно выдавать ноль. Подскажите пожалуйста, в чем проблема, буду благодарен! | |
|
|
|
|
|
|
|
для: Dimon-RU
(19.06.2009 в 13:34)
| | операторы:
exit;
fclose($fp);
надо поменять местами, сначала закрыть, потом выйти.
strpos($ts,$topic) лучше зкаменить на stripos($ts,$topic) (это регистронезависимая функция, в PHP5) | |
|
|
|
|
|
|
|
для: Петр
(19.06.2009 в 14:29)
| | Изменил все, как вы написали. По-прежнему во всех случаях выдает единицу, даже когда надо выдавать ноль... | |
|
|
|
|
|
|
|
для: 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;
?>
|
| |
|
|
|