Fork me on GitHub
a Sensio Labs Product

15 Keys Accelerate (v3.54.0) edition

Rule mb_str_functions

Replace non multibyte-safe functions with corresponding mb function.


Using this rule is risky

Risky when any of the functions are overridden, or when relying on the string byte size rather than its length in characters.


Example #1

--- Original
+++ New
-$a = strlen($a);
-$a = strpos($a, $b);
-$a = strrpos($a, $b);
-$a = substr($a, $b);
-$a = strtolower($a);
-$a = strtoupper($a);
-$a = stripos($a, $b);
-$a = strripos($a, $b);
-$a = strstr($a, $b);
-$a = stristr($a, $b);
-$a = strrchr($a, $b);
-$a = substr_count($a, $b);
+$a = mb_strlen($a);
+$a = mb_strpos($a, $b);
+$a = mb_strrpos($a, $b);
+$a = mb_substr($a, $b);
+$a = mb_strtolower($a);
+$a = mb_strtoupper($a);
+$a = mb_stripos($a, $b);
+$a = mb_strripos($a, $b);
+$a = mb_strstr($a, $b);
+$a = mb_stristr($a, $b);
+$a = mb_strrchr($a, $b);
+$a = mb_substr_count($a, $b);


The test class defines officially supported behaviour. Each test case is a part of our backward compatibility promise.