From:             [EMAIL PROTECTED]
Operating system: Linux
PHP version:      4.2.1
PHP Bug Type:     Strings related
Bug description:  strstr matches any variable surrounded by underscores

This script:

<?php
 $needle = "foo";
 echo "1: ";
 echo strstr("Moo _bar_", "_$needle_");
 echo "<br>2: ";
 echo strstr("Moo _bar_", "_{$needle}_");
 echo "<br>3: ";
 echo strstr("Moo _foo_", "_{$needle}_");
 echo "<br>4: ";
 echo strstr("Moo !bar!", "!$needle!");
?>

Gives this output:

1: _bar_
2: 
3: _foo_
4:

Obviously, the line 1 is the problem. If both "haystack" and "needle" have
the strings surrounded by underscores - the strings are matched even if
they are actually different. This happens only if the "needle" has a
variable between the underscores, and the variable is not surrounded by {
and }.

Prehaps I am missing something and the combination of "_$" is supposed to
mean something, but i did not see it in the documentation.
-- 
Edit bug report at http://bugs.php.net/?id=17277&edit=1
-- 
Fixed in CVS:        http://bugs.php.net/fix.php?id=17277&r=fixedcvs
Fixed in release:    http://bugs.php.net/fix.php?id=17277&r=alreadyfixed
Need backtrace:      http://bugs.php.net/fix.php?id=17277&r=needtrace
Try newer version:   http://bugs.php.net/fix.php?id=17277&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=17277&r=support
Expected behavior:   http://bugs.php.net/fix.php?id=17277&r=notwrong
Not enough info:     http://bugs.php.net/fix.php?id=17277&r=notenoughinfo
Submitted twice:     http://bugs.php.net/fix.php?id=17277&r=submittedtwice
register_globals:    http://bugs.php.net/fix.php?id=17277&r=globals

Reply via email to