Re: [PHP-DEV] Re: PHP 4.0 Bug #3017 Updated: if(strpos("Mozilla/4.7", "Mozilla") evaluates false!!! From: Andrei Zmievski (andrei <email protected>)
Date: 12/21/99

On Tue, 21 Dec 1999, Cuneyt YILMAZ wrote:
> thank you for the fast response. however the function still does not
> behave as one would expect.
>
> that strpos("Mozilla/4.7", "Mozilla") is 0 should not mean that it's not
> found, instead should mean that it's found right on the 0th position,
> and therefore in an if-clause should evaluate to true.
>
> i know there are many workarounds to this problem, like
> if (substr($uagent, 0, 7) == "Mozilla)) {
> or
> if (strpos($uagent, "ozilla") == 1 ) {
> etc, etc
>
> yet the strpos function still does not behave as expected, ie return -1
> if not found as in the other languages, say C/C++, Java, JavaScript,
> Perl, to name a few giants.

The semantics of strpos() are not going to change and if() will
certainly not evaluate 0 as true. I offered you a workaround - to see
whether the match succeeded or not try:

if (strpos($uagent, "Mozilla") === false)

means that match was not found.

-Andrei
* On the keyboard of life, always keep one finger on the escape key. *

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: php-dev-unsubscribe <email protected>
For additional commands, e-mail: php-dev-help <email protected>
To contact the list administrators, e-mail: php-list-admin <email protected>