2017-05-23 86 views
1

this code结果:为什么trim()影响其他角色?

echo trim('سلام؟', '؟'); 

�لام

为什么?我甚至不知道应该是什么。这是从哪里来的?

+2

的可能的复制(https://stackoverflow.com/questions/10066647/multibyte-trim-in-php ) – Nadav

+0

[切割阿拉伯语字符串](https://stackoverflow.com/q/32680409/6521116) –

回答

2

我想这是因为它是右toleft-语言,你可以使用rtrim()

phpFiddle - 点击 “运行F9” 执行

echo rtrim('سلام؟', '؟'); 
+0

是的,'rtrim()'也适用于这种情况。但并不总是https://3v4l.org/12vXl –

+0

我们在rtl语言的单词前没有问号,所以'?سلام'不是一个“有效的”反正 –

+0

哈哈哈......你是对的。但如果我也可以检查它会好得多。 –

0

您可以使用rtrim()

这将删除字符串末尾的空格。

echo rtrim('سلام؟', '؟');

而且你的问题就解决了..

0

你串字符是阿拉伯语,这是相反的顺序。所以你必须使用rtrim()。

1

rtrim是从字符串的右侧进行替换,对于OP的要求是可以的。但我认为str_replace()更合适。修剪可以通过它来完成,也有助于替换任何字符串的位置。一个例子:

$search = ['؟', ' ',]; // Add more elements if required 
$str = 'سلام؟'; 
$output = str_replace($search, '', $str); 

echo $output; 

输出:[?PHP的多字节装饰]

سلام 
相关问题