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

Форум PHP

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

 

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

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

тема: Поиск строки в файле

Сообщения:  [1-10]   [11-18] 

 
 автор: coloboc66   (07.09.2006 в 12:59)   письмо автору
 
   для: Trianon   (07.09.2006 в 09:24)
 

Если я несу бред, то несут бред и все уважаемые авторы учебников, имеющихся у меня (или вы умней их?). Цитирую строки из учебника РНР Люка Веллинга и Лоры Томсон:
Обратите внимание на операцию идентичности, появившуюся в РНР4 (= = =), которая возвращает значение true только в том случае, если оба оператора равны и имеют один и тот же тип. Я, например, начинал с РНР3, а если вы начинали с РНР4, то "не расписывайтесь за всех. И будет вам все цветочно".

   
 
 автор: Trianon   (07.09.2006 в 09:24)   письмо автору
 
   для: coloboc66   (06.09.2006 в 23:45)
 

Функция при неудачном завершении возвращает false. Как и огромная куча других функций php, результат которых сперва надо проверять на === !== false. Как и несколько меньшая группа функций, которая помимо всего прочего, при успешном выполнении может вернуть 0 целого типа или значение к нему неявно приводимое.

[поправлено модератором]

   
 
 автор: coloboc66   (06.09.2006 в 23:45)   письмо автору
 
   для: Trianon   (06.09.2006 в 17:57)
 

Так а там нет нигде двух знаков равенства. - потому что все и так понимают, что вроде бы надо ставить два знака. А на самом деле нужно ТРИ. На самом деле функция возвращает не false, а 0, но тип при этом boolean, а не integer- вот в чем проблема. ec-statis все понятно объяснил.

   
 
 автор: Trianon   (06.09.2006 в 17:57)   письмо автору
 
   для: coloboc66   (06.09.2006 в 17:48)
 

Так а там нет нигде двух знаков равенства.
А слова "логическое FALSE" - выделены.

   
 
 автор: coloboc66   (06.09.2006 в 17:48)   письмо автору
 
   для: Trianon   (06.09.2006 в 17:41)
 

Имеется ввиду три знака равенства, а не два.

   
 
 автор: Trianon   (06.09.2006 в 17:41)   письмо автору
 
   для: coloboc66   (06.09.2006 в 17:36)
 

В справочние это отмечено:

Если подстрока не будет найдена, то функция strpos() вернёт логическое FALSE.

   
 
 автор: coloboc66   (06.09.2006 в 17:36)   письмо автору
 
   для: ec_stasis   (06.09.2006 в 17:03)
 

Хозяевам форума в их справочнике функций неплохо было бы это отметить

   
 
 автор: ec_stasis   (06.09.2006 в 17:03)   письмо автору
 
   для: coloboc66   (06.09.2006 в 13:02)
 

Дело не в некорректной работе функции, а в некорректном ее использовании.
Если написать ==, то

strpos(file_get_contents($f_user), $outputstring)===false
будет истинным, только если совпадение на нулевой позиции, т.е. в самом начале файла, поэтому я и спрашивал про пользователя - первый ли он в списке.

   
 
 автор: coloboc66   (06.09.2006 в 16:56)   письмо автору
 
   для: coloboc66   (06.09.2006 в 13:02)
 

Наверно тема моя затерлась уже, но я все-таки прошу обратить внимание на предпоследнее мое сообщение, может кому пригодится. Я двое суток мучался с проблемой, пока разобрался.

   
 
 автор: coloboc66   (06.09.2006 в 13:02)   письмо автору
 
   для: komex   (06.09.2006 в 12:09)
 

Нашел, в чем проблема некорректной работы функции strpos():
if (strpos(file_get_contents($f_user), $outputstring)===false)

Обязательно нужно писать именно так!

   

Сообщения:  [1-10]   [11-18] 

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

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