ID: 33852 User updated by: sl at yes-co dot nl Reported By: sl at yes-co dot nl Status: Open -Bug Type: Documentation problem +Bug Type: Scripting Engine problem Operating System: Linux sarge 2.6.8 -PHP Version: Irrelevant +PHP Version: 5.1.0-dev New Comment:
Offset also does not work from the end: strrpos with offset string: aaabaaaaaaaaaaaabaaa strrpos($string, 'b', 1): 16 strrpos($string, 'b', 5): 16 strrpos($string, 'b', 15): 16 strrpos($string, 'b', 19): strrpos($string, 'b', -5): 3 strrpos($string, 'b', -15): 3 This does not make sense. Previous Comments: ------------------------------------------------------------------------ [2005-07-25 11:45:07] sl at yes-co dot nl Description: ------------ The offset parameter of the strrpos function is the offset from the end of the string. The documentation is unclear about this: "As of PHP 5.0.0 offset may be specified to begin searching an arbitrary number of characters into the string." I would expect it to start at $string+$offset, searching backwards. Reproduce code: --------------- <?php echo "strrpos with offset\n"; $string='abcdefghijklmnopqrstuvwxyz'; echo "string: $string\n"; echo 'strrpos($string, \'n\', 5): '.strrpos($string, 'n', 5)."\n"; echo 'strrpos($string, \'n\', 15): '.strrpos($string, 'n', 15)."\n"; echo 'strrpos($string, \'n\', -5): '.strrpos($string, 'n', -5)."\n"; echo 'strrpos($string, \'n\', -15): '.strrpos($string, 'n', -15)."\n"; ?> Actual result: -------------- strrpos with offset string: abcdefghijklmnopqrstuvwxyz strrpos($string, 'n', 5): 13 strrpos($string, 'n', 15): strrpos($string, 'n', -5): 13 strrpos($string, 'n', -15): ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=33852&edit=1