Fork me on GitHub
a Sensio Labs Product

Persian Successor (v3.65.0) edition

Rule mb_str_functions

Replace non multibyte-safe functions with corresponding mb function.

Warning

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.

Examples

Example #1

--- Original
+++ New
 <?php
-$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);

References

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