为什么 trim() 会影响其他字符?

Why trim() affects on the other characters?

this code的结果:

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

�لام.

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

我认为这是因为它是从右到左的语言,您可以使用rtrim()

phpFiddle - 点击 "Run F9" 执行

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

您可以使用 rtrim().

这将从字符串末尾删除白色 space。

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

你的问题解决了..

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

rtrim是从字符串右边开始替换,符合OP的要求。但是我觉得str_replace()更合适。 Trim 可以用它来完成,也有助于从字符串的任何位置进行替换。一个例子:

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

echo $output;

输出:

سلام