php不会检测字符串中的所有空格

I've got a string that comes from a POST form where I want to replace all spaced with some other character.

Here's that I did:

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

And I got this.

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

As you can see, spaced before "[10..." are still there. Any ideas what could be the problem?

You need preg_replace here:

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

It's mostly likely because it's a newline character, . The first param of str_replace can be an array of characters to replace. Could also be a tab char. Or use preg_replace to replace all whitespace chars instead.

EDIT:

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

GOT IT!!! HA-HA-HA! Being a good programmer I had used mysqli_real_escape_string on $_POST before assigning it to $cdata. Now I removed it and seems to work perfect! Thanks guys!