场景:英文字符串反转 使用 方法 strrev($str) ,但是中文字符串怎么反转呢?
代码
/**
* 多字符 字符串反转
* @param string $string 字符串
* @param string $encoding 编码
* php >= 7.4 否则需要实现 mb_str_split 多字符变成字符串
*/
function mb_strrev($string , $encoding = null){
if(is_null($encoding)){
$encoding = mb_internal_encoding();
}
// 把字符串变成数组
$arr = mb_str_split($string , 1 ,$encoding);
// 数组反转
return implode('',array_reverse($arr));
}
输出
var_dump(mb_strrev('你好 hello w阿斯利康大家坷拉就少得可怜ord!'));
// string(57) "!dro怜可得少就拉坷家大康利斯阿w olleh 好你"
引用: mb_str_split 实现方式
php中mb_str_split分割字符串为数组的函数介绍与使用以及低版本php函数实现_php split字符串分割字符串_豆子林的博客-CSDN博客mb_str_split将返回一个字符串数组,这是一个支持字符变长编码以及1、2、4字节字符定长编码版本的str_split()。 如果指定了length参数,则将字符串按指定的字符长度(而不是字节长度)拆分为块。 可以选择指定encoding参数,这样是很好的做法。mb_str_split函数将返回字符串数组。php8.0开始此函数在失败时不再返回false,而是返回空数组。_php split字符串分割字符串https://blog.csdn.net/llgde/article/details/131367251
附上代码:
/**
* 分割字符串
*/
if (!function_exists('mb_str_split')) {
function mb_str_split($string, $split_length = 1, $encoding = null)
{
if (is_null($encoding)) {
$encoding = mb_internal_encoding();
}
if ($split_length < 1) {
return [];
}
$length = mb_strlen($string, $encoding);
$parts = [];
for ($i = 0; $i < $length; $i += $split_length) {
$parts[] = mb_substr($string, $i, $split_length, $encoding);
}
return $parts;
}
}