strstr - не пойму

five

Новичок
strstr - не пойму

Вот вырезка из функции:
PHP:
                $rusnet=file('file.txt');
                $this->allowed=0;
                while (list($key, $val) = each($rusnet))
                {
                 //echo "$val = $key<br>";
                 if (strstr($this->remote_host,$val)) 
                  { $this->allowed=1; break; }
                 else
                  { $this->allowed=2; }
                }
$rusnet - список IP адресов в формате "111.222.333."
$this->remote_host - мой IP адрес в формате "111.222.333.444"

Вот второй пример, который отрабатывает правильно. Выводит "1".
PHP:
 if (strstr("192.168.1.38","192.168.1.")) echo "1";
Так вот. Что хотел спросить: почему первый пример никогда не присваивает $this->allowed=1 ?

Может я что-то проглядел?
 

alpine

Новичок
five
А что говорит банальный дебаг?

-~{}~ 04.08.04 15:18:

сюда все приходит
PHP:
strstr($this->remote_host, $val)
?
 

_RVK_

Новичок
сделай для отладки
PHP:
var_dump($this->remote_host);
var_dump($val);
возможно в файле где то лишние символы затесались...
 

alpine

Новичок
Свойство класса:
PHP:
$this->allowed=1;
определено в классе, ты его больше нигде не переопределяешь?
 

_RVK_

Новичок
five лучшие инструмены для дебага это print и [m]var_dump[/m].
 

five

Новичок
alpine, Diesel спасибо. Нашел багу :)
В переменной $val был лишний пробел в конце :)
 

alpine

Новичок
five
Смотри когда [m]file()[/m] -лом считываешь в массив то строки присваиваются элементам массива как есть, тоесть с пробелаеми и с символами "\n" "\r". Тебе нужно еще делать [m]trim()[/m].
 
Сверху