【发布时间】:2015-12-18 14:57:15
【问题描述】:
我有一个字符串 بشكه,它有 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) 之类的常用函数,没用
是否有更多关于这些隐藏角色的信息,例如它们的真实身份以及如何删除它们?
【问题讨论】:
-
<=-><如果您将字符串作为数组访问,则它是基于 0 的索引 -
@Rizier123 抱歉,我已经更正了
-
字符串末尾有一个隐藏字符。只需重新输入或删除字符。
-
@Rizier123 字符串是动态的,它来自数据库,我不能只删除最后一个字符!
-
然后你可以删除所有你想要保留的东西
标签: php regex preg-replace