2010-05-26 11 views
1

모든 공백을 다른 문자로 바꾸려는 POST 양식의 문자열이 있습니다.php가 문자열의 모든 공백을 감지하지 못합니다.

$cdata = str_replace(" ","#",$cdata); 

그리고이있어 :

는 여기에 내가했던 것을입니다.

--- Contact-ID#=#148 [10274da8]#Sinhronizācija#=#private [1000137d]#Uzvārds#=#Zom [1000137c]#Vārds#=#Tana [1000130e]#Tālrunis#=#3333 [1000130e]#Mobilais#=#5555 

"10 ..."앞에 공백이 있습니다. 어떤 아이디어가 문제 일 수 있습니까?

+2

올바른 $ cdata 값을 게시 할 수 있습니까? – Karthik

답변

1

현재 preg_replace 필요

$cdata = preg_replace('/\s+/', '#', cdata); 
+3

당신은 정말 간단한 일을 위해 정규 표현식을 사용할 필요가 없습니다. Calvin L이 설명한 것처럼이 경우 다른 문제가 있습니다. –

+0

@Ondrej Slinták : 맞습니다. 그는 문제를 발견했습니다. 여기서는 정규식이 필요 없습니다. – Sarfraz

+0

yea ... 시도한 $ cdata = preg_replace ('/ \ s + /', '#', $ cdata); , 작동하지 않는 것 같아요 ... –

4

가 개행 문자, \n이기 때문에 그것은 대부분 가능성이 높습니다. str_replace의 첫 번째 매개 변수는 바꿀 문자 배열 일 수 있습니다. 탭 문자 일 수도 있습니다. 또는 preg_replace를 사용하여 모든 공백 문자를 대신 바꿀 수 있습니다.

편집 :

$chars_to_replace = array(" ", "\t","\n","\r","\o","\x0B");
$new_string = str_replace($chars_to_replace, "#", $cdata);

+0

흠 ... 매우 이상하게도, 매뉴얼 ("", "/ t", "/ n", "/ r", "/ o", "/ x0B")의 공백 문자를 모두 바꿨습니다. 다른 아이디어는? –

+0

잘못된 슬래시 (슬래시)를 사용하고 있습니다. 백 슬래시 (/)를 사용해야합니다. – Calvin

+1

전 완전히 뒤집어 썼습니다. 백 슬래시 = \ – Calvin

0

그것을 얻었다! HA-HA-HA! 좋은 프로그래머이기 때문에 나는 그것을 $ cdata에 할당하기 전에 $ _POST에 mysqli_real_escape_string을 사용했다. 이제 그것을 제거하고 완벽하게 작동하는 것 같습니다! 고마워요!

관련 문제