gpt4 book ai didi

php - 删除 perso-arabic 字符串中的隐藏空格

转载 作者:可可西里 更新时间:2023-10-31 23:38:26 24 4
gpt4 key购买 nike

我有一个有 4 个字符的字符串当我执行 mb_strlen 时,结果是 5,这意味着那里有一个隐藏的字符

我已经遍历了它的字符以找出发生了什么

$string  = 'بشكه‌'; 

$string = trim($string);
$string = preg_replace("/\s| /",'',$string);

echo ' total length : '.mb_strlen( $string , "UTF-8" ) ;
echo '<br />';

for( $i = 0; $i < mb_strlen( $string , "UTF-8" ); $i++ ) {
$char_b = mb_substr( $string , $i, 1 , "UTF-8");
echo $i . ' -> '.$char_b ;
var_dump($char_b );
echo '<br />';
}

这是输出

total length : 5
0 -> ب

string 'ب' (length=2)


1 -> ش

string 'ش' (length=2)


2 -> ك

string 'ك' (length=2)


3 -> ه

string 'ه' (length=2)


4 -> ‌

string '‌' (length=3)

我在上面使用了 trim 或 preg_replace("/\s|/",'',$string) 等常用函数,但没有用

有没有办法找到更多关于这些隐藏字符的信息,例如它们的真实面目以及如何删除它们?

最佳答案

如果您不知道需要删除什么,只需将其反转并删除除您想要保留的内容之外的所有内容,例如

$string = preg_replace("/[^\p{L}[:space:]]/u",'',$string);
  • u匹配 unicode 的修饰符
  • \p{L} unicode 单词的字符类
  • [:space:]空间

关于php - 删除 perso-arabic 字符串中的隐藏空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34358363/

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