2017-05-23 6 views
1

this codeの結果:なぜtrim()が他の文字に影響するのですか?

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

�لامです。

なぜですか? さんは何をすべきか分かりません。それはどこから来たのですか?

+2

の可能性のある重複(https://stackoverflow.com/questions/10066647/multibyte-trim-in-php ) – Nadav

+0

[cut arabic string](https://stackoverflow.com/q/32680409/6521116) –

答えて

2

私は、これはそれが右toleft-言語であるので、あなたがrtrim()

phpFiddleを使用することができますだと思う - あなたはrtrim()を使用することができます

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

はい、 'rtrim()'もこの場合に動作します。しかし必ずしもそうではありませんhttps://3v4l.org/12vXl –

+0

rtl言語の単語の前に疑問符がありませんので、 '?سلام'は「有効」ではありません。とにかく –

+0

ハッハッハ...あなたは正しいです。私がそれを確認することができれば、はるかに良いでしょう。 –

0

を実行するために、 "ファイル名を指定して実行F9" を押してください。

これは、文字列の最後から空白を削除します。

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

そして、あなたの問題解決...

0

あなたの文字列の文字を逆の順序である、アラビアあります。したがって、rtrim()を使用する必要があります。

1

rtrimは、文字列の右側から置換するものであり、OPの要件には問題ありません。しかし、私はstr_replace()がより適切だと思います。トリムはそれによって行うことができ、文字列の任意の位置から置き換えることもできます。例:

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

echo $output; 

出力:[?PHPのマルチバイトトリム]

سلام 
関連する問題