gpt4 book ai didi

php - 使用带有特殊字符的字符串时,str_split() 在 PHP 中无法正常工作

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:44:04 25 4
gpt4 key购买 nike

我正在尝试以下内容

$x = "126·10⁴";
$array = str_split($x);
echo "x = " . $x . "<br>";
echo "Array length: " . count($array) . "<br>";

echo "Charset: " .mb_detect_encoding($x)."<br>";

foreach($array as $i)
echo $i . " ";

输出为:

x = 126·10⁴
Array length: 10
Charset: UTF-8
1 2 6 � � 1 0 � � �

我希望 · 是数组中的 1 个字符,如何实现?我想要达到的目的是遍历字符串的所有字符,因此也欢迎任何其他解决方案。

最佳答案

根据 comment in the PHP Manual (感谢@Rizier123),正确的做法如下:

function str_split_unicode($str, $l = 0) {
if ($l > 0) {
$ret = array();
$len = mb_strlen($str, "UTF-8");
for ($i = 0; $i < $len; $i += $l) {
$ret[] = mb_substr($str, $i, $l, "UTF-8");
}
return $ret;
}
return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
}

关于php - 使用带有特殊字符的字符串时,str_split() 在 PHP 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33054762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com