public static function diffCommonPrefix($old, $new)
{
// Quick check for common null cases.
- if (strlen($old) == 0 || strlen($new) == 0 || substr($old, 0, 1) != substr($new, 0, 1)) {
+ if (mb_strlen($old) == 0 || mb_strlen($new) == 0 || mb_substr($old, 0, 1) != mb_substr($new, 0, 1)) {
return 0;
}
// Binary Search
$pointerMin = 0;
- $pointerMax = min(strlen($old), strlen($new));
+ $pointerMax = min(mb_strlen($old), mb_strlen($new));
$pointerMid = $pointerMax;
$pointerStart = 0;
while ($pointerMin < $pointerMid) {
$cmp = substr_compare(
$old,
- substr($new, $pointerStart, $pointerMid - $pointerStart),
+ mb_substr($new, $pointerStart, $pointerMid - $pointerStart),
$pointerStart,
$pointerMid - $pointerStart
);
public static function diffCommonSuffix($old, $new)
{
// Quick check for common null cases.
- if (strlen($old) == 0 || strlen($new) == 0 || substr($old, strlen($old) - 1, 1) != substr($new, strlen($new) - 1, 1)) {
+ if (mb_strlen($old) == 0 || mb_strlen($new) == 0 || mb_substr($old, mb_strlen($old) - 1, 1) != mb_substr($new, mb_strlen($new) - 1, 1)) {
return 0;
}
// Binary Search
$pointerMin = 0;
- $pointerMax = min(strlen($old), strlen($new));
+ $pointerMax = min(mb_strlen($old), mb_strlen($new));
$pointerMid = $pointerMax;
$pointerEnd = 0;
- $oldLen = strlen($old);
- $newLen = strlen($new);
+ $oldLen = mb_strlen($old);
+ $newLen = mb_strlen($new);
while ($pointerMin < $pointerMid) {
- if (substr($old, $oldLen - $pointerMid, $pointerMid - $pointerEnd) == substr($new, $newLen - $pointerMid, $pointerMid - $pointerEnd)) {
+ if (mb_substr($old, $oldLen - $pointerMid, $pointerMid - $pointerEnd) == mb_substr($new, $newLen - $pointerMid, $pointerMid - $pointerEnd)) {
$pointerMin = $pointerMid;
$pointerEnd = $pointerMin;
} else {