直接替换mb_substr?

Ana*_* 10 2 php

我需要substr在不破坏它的情况下使用多字节字符串,但PHP mb_扩展名不可用.是否有直接替代mb_substr

Ala*_*blo 6

如果你的字符串是unicode,你可以使用带有空模式的preg_split来完成这个技巧.

一个简单的实现可能是:

function my_mb_substr($string, $offset, $length)
{
  $arr = preg_split("//u", $string);
  $slice = array_slice($arr, $offset + 1, $length);
  return implode("", $slice);
}

echo my_mb_substr("????", 1, 2); // ??
Run Code Online (Sandbox Code Playgroud)

  • 这些诙谐的解决方法很难看但很美味...... :) (2认同)