2013-09-26 3 views
-1

나는 다음과 같은 문자열, 문자열 진수를 디코딩의 결과,PHP - 여분의 공백을 제거

" g e t s m h " 

하지만 결과가 있어야

"get smh" 

내가이 preg_replace이다를 사용하여 수행 할 수 있다고 생각을 가지고 ,하지만 난 정규식으로 전혀 모른다. 친절하게 조언하십시오. 감사.

\s(?!\s) 

을 그리고 아무것도 대체 :

답변

2

은 다음보십시오.

\s(?!\s)은 공백 문자 (개행 문자와 줄 바꿈, formfeeds 및 탭과 일치하지만 한 줄이면 문제가 아니어야합니다.) 뒤에 다른 공백 문자가 오지 않으면 "" 2 공백), 두 번째 공백 만 대체됩니다.

는이처럼 사용

$newstring = preg_replace('/\s(?!\s)/', '', $oldstring); 
+0

mb_convert_encoding 사용하여 작업을 얻을거야? ! \ s) ',' ', $ string) 다음 오류가 있습니다. 구분 기호는 영숫자 또는 백 슬래시가 아니어야합니다. – sulaiman

+0

구분 기호를 사용해야합니다. 당신이 그걸 어떻게 사용할 줄 알았습니까? 내 대답에 약간의 사용법을 추가하겠습니다. – Jerry

+0

@sulaiman 편집 된 답변과 [viper-7] (http://viper-7.com/EaKCCU) 데모를보십시오. – Jerry

0

이보십시오. 사람이 여분의 공백 preg_replace이다없이 문자열을 16 진수로 변환 찾을 경우는

$str = " g e t s m h "; 
$str = explode(' ', $str); 
$str_1 = str_replace(' ', '', $str[0]); 
$str_2 = str_replace(' ', '', $str[1]); 
echo $str_1.' '.$str_2; 
+0

나는 preg_replace와 적은 코드를 사용하는 것을 선호합니다. 어쨌든 고마워. – sulaiman

0

작동합니다 홉, 나는 마침내 내가 preg_replace이다 ('\들 (시도

mb_convert_encoding(pack('H*', $hexstring), 'ASCII', 'UCS-2'); 
관련 문제