2017-05-23 5 views
1

this code의 결과 :trim()이 다른 문자에 영향을주는 이유는 무엇입니까?

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

�لام입니다.

왜? 는 무엇을해야할 지 모르겠다. 그게 어디서 온거야? 당신은 rtrim()을 사용할 수 있습니다

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

의 사용 가능한 복제 (https://stackoverflow.com/questions/10066647/multibyte-trim-in-php) – Nadav

+0

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

답변

2

나는, 당신은 rtrim()

phpFiddle 사용은 마우스 오른쪽 toleft- 언어이기 때문이라고 생각합니다.

이렇게하면 문자열 끝에 공백이 제거됩니다.

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

그리고 문제 해결

..

+0

예, 'rtrim()'이이 경우에도 작동합니다. 하지만 항상 https://3v4l.org/12vXl –

+0

우리는 rtl 언어로 단어 앞에 물음표가 없으므로'? سلام'은 "유효한"어쨌든 –

+0

하하하 ... 당신 말이 맞아요. . 내가 그것을 점검 할 수 있으면 그것은 훨씬 더 좋을 것이다. –

0

을 실행하기 위해 "실행 F9"를 히트 -

0

귀하의 문자열의 문자는 역순 인, 아랍어이다. 따라서 rtrim()을 사용해야합니다.

1

rtrim은 문자열의 오른쪽에서 바꾸는 것이므로 OP 요구 사항에 적합합니다. 하지만 나는 str_replace()이 더 적절하다고 생각합니다. 다듬기가이 작업을 수행 할 수 있으며 문자열의 위치를 ​​바꿀 때도 유용합니다. 예 :

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

echo $output; 

출력 : [? PHP에서 멀티 바이트 트림]

سلام