ID: 41013
Updated by: [EMAIL PROTECTED]
Reported By: phraje at gmail dot com
-Status: Open
+Status: Bogus
Bug Type: Unknown/Other Function
Operating System: linux 2.6.18 & win32
PHP Version: 5.2.1
New Comment:
.
Previous Comments:
------------------------------------------------------------------------
[2007-04-07 00:51:11] webmaster at wiedmann-online dot de
In the first two cases strtr() or stristr() returns the string "0".
A loose boolean comparisons with "0" is FALSE and so the if statement
is not executed.
In your case you can change the code to:
if(false !== strstr($haystack,$needle)) { printf("%s.\n",$haystack); }
BTW: better use strpos() in this case.
------------------------------------------------------------------------
[2007-04-06 19:04:25] phraje at gmail dot com
Description:
------------
If a haystack string has a zero (0) as its last character, and the
needle is zero, neither strstr() or stristr() will match it. Can be
worked around by concatenating a trailing space to the haystack string.
Reproduce code:
---------------
$haystack="this is a string that ends in 0";
$needle=sprintf("%d",0);
if(strstr($haystack,$needle)) { printf("%s.\n",$haystack); }
if(stristr($haystack,$needle)) { printf("%s.\n",$haystack); }
$haystack="this is a string that doesn't end in 0 ";
if(strstr($haystack,$needle)) { printf("%s.\n",$haystack); }
if(stristr($haystack,$needle)) { printf("%s.\n",$haystack); }
$haystack="this is a string that ends in 1";
$needle=sprintf("%d",1);
if(strstr($haystack,$needle)) { printf("%s.\n",$haystack); }
if(stristr($haystack,$needle)) { printf("%s.\n",$haystack); }
Expected result:
----------------
this is a string that ends in 0.
this is a string that ends in 0.
this is a string that doesn't end in 0 .
this is a string that doesn't end in 0 .
this is a string that ends in 1.
this is a string that ends in 1.
Actual result:
--------------
this is a string that doesn't end in 0 .
this is a string that doesn't end in 0 .
this is a string that ends in 1.
this is a string that ends in 1.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=41013&edit=1