2017-05-23 123 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的多字節裝飾]

سلام 
相關問題