php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #49790 mb_substr_count and substr_count do not have the same definition
Submitted: 2009-10-06 15:52 UTC Modified: 2010-12-20 09:32 UTC
Votes:3
Avg. Score:4.7 ± 0.5
Reproduced:3 of 3 (100.0%)
Same Version:0 (0.0%)
Same OS:0 (0.0%)
From: pg dot millon at gmail dot com Assigned:
Status: Open Package: mbstring related
PHP Version: 5.2.11 OS: Ubuntu
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please — but make sure to vote on the bug!
Your email address:
MUST BE VALID
Solve the problem:
45 - 12 = ?
Subscribe to this entry?

 
 [2009-10-06 15:52 UTC] pg dot millon at gmail dot com
Description:
------------
I'm using the mbstring_funcoverload property defined to 7 which allows the overload of every functions. While using the function substr_count with the 3 parameter (offset) defined. As overloading is activated, calling substr_count is equivalent to calling mb_substr_count but the offset parameter does not exists for this function

Reproduce code:
---------------
In php.ini: mbstring.func_overload 7

$var = substr_count('/some/path', DIRECTORY_SEPARATOR, 0);

Expected result:
----------------
1

Actual result:
--------------
Warning: mb_substr_count(): Unknown encoding "0" in php shell code on line 1

Call Stack:
    6.0376      46516   1. {main}() php shell code:0
    6.0376      46648   2. mb_substr_count() php shell code:1

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2010-12-20 09:32 UTC] jani@php.net
-Package: Feature/Change Request +Package: mbstring related
 [2013-03-19 13:07 UTC] neggelandia at gmail dot com
The problem goes deeper. substr_count() takes 4 parameters while mb_substr_count() only takes three (and the third doens't even have the same meaning), which produces errors such as this:

mb_substr_count() expects at most 3 parameters, 4 given

This makes the mbstring.func_overload configuration parameter misbehave.
 [2013-06-09 20:37 UTC] andre at koethur dot de
Without the offset parameter, this function is quite useless, because it will 
behave exact like a binary safe substr_count() with $offset=0. In other words; 
There is only a need for a multi byte aware substr_count when $offset > 0 …
 
PHP Copyright © 2001-2020 The PHP Group
All rights reserved.
Last updated: Sat Nov 28 02:01:26 2020 UTC