ID: 33852 Updated by: [EMAIL PROTECTED] Reported By: sl at yes-co dot nl -Status: Feedback +Status: Bogus Bug Type: Strings related Operating System: Linux sarge 2.6.8 PHP Version: 5.1.0-dev New Comment:
Quote whole parts and you will understand it: "As of PHP 5.0.0 offset may be specified to begin searching an arbitrary number of characters into the string. Negative values will stop searching at an arbitrary point prior to the end of the string." Thus strrpos('0123456789', '3', 5) is equal to strrpos('.....56789', '3') and strrpos('0123456789', '3', -5) is equal to strrpos('012345', '3'). Previous Comments: ------------------------------------------------------------------------ [2005-07-25 12:34:27] [EMAIL PROTECTED] There are two fields int the report form: one for the result you expect to get and second for the result you actually get. Please fill them both. ------------------------------------------------------------------------ [2005-07-25 11:58:41] sl at yes-co dot nl 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. ------------------------------------------------------------------------ [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