I am using wordpress as a CMS and trying to allow user fields to be input to populate the info windows in a Google Map script. I am using this to select the id and pull in
I always use this to get rid of pesky carriage returns:
$string = str_replace("\r\n", "\n", $string); // windows -> unix
$string = str_replace("\r", "\n", $string); // remaining -> unix
I don't fully understand your exact problem, but the answer to the title of your question is quite simple:
$snip = str_replace('.', '', $snip); // remove dots
$snip = str_replace(' ', '', $snip); // remove spaces
$snip = str_replace("\t", '', $snip); // remove tabs
$snip = str_replace("\n", '', $snip); // remove new lines
$snip = str_replace("\r", '', $snip); // remove carriage returns
Or a all in one solution:
$snip = str_replace(array('.', ' ', "\n", "\t", "\r"), '', $snip);
You can also use regular expressions:
$snip = preg_replace('~[[:cntrl:]]~', '', $snip); // remove all control chars
$snip = preg_replace('~[.[:cntrl:]]~', '', $snip); // above + dots
$snip = preg_replace('~[.[:cntrl:][:space:]]~', '', $snip); // above + spaces
You'll still need to use addslashes()
to output $snip
inside Javascript.
Try JSON-encoding it, I always do that when I send data from PHP to Javascript. It solves most encoding issues, including newlines.
if you need to remove new line symbols of all types (in utf8)
$dataWithoutCarrierReturn = preg_replace('/\R/', '', $inData);
Use WP's own esc_js()
, which will escape quotes and line breaks for JavaScript strings.
Since you're putting this into Javascript, you'll need to escape it for javascript strings. addslashes()
should do the trick.