删除PHP中的换行符和换行符

时间:2013-11-21 04:22:42

标签: javascript php regex

CKEditor在我输入数据库的内容中添加了新行,这很好,除了这些数据需要作为单行html呈现给javascript。

在我的PHP中我有:

$tmpmaptext = $map['maptext'][$this->config->get('config_language_id')];
$tmpmaptext = html_entity_decode($tmpmaptext, ENT_QUOTES, 'UTF-8');
$tmpmaptext = str_replace(array('\r\n', '\n', '\r', '\t'), '', $tmpmaptext);
$tmpmaptext = str_replace(PHP_EOL, '', $tmpmaptext);

我几乎可以找到关于如何移除新行的所有内容,但我仍然在页面中以此结尾:

var infowindow01 = new google.maps.InfoWindow({  
        content:  '<div><h2>Title</h2>

<p>Address line 1,<br />
Address line 2</p>

<p>phone number</p>

<p><a href="http://www.example.com" target="_blank">www.example.com</a></p>
</div>'

如何在不删除字符之间的正常间距的情况下获取所有这些新行?

2 个答案:

答案 0 :(得分:1)

我认为这是因为你在str_replace中使用单引号搜索字符串'\ n'(斜杠n)。如果你使用双引号,它会将\ n转换为换行符......

$maptext = '<div><h2>Title</h2>

<p>Address line 1,<br />
Address line 2</p>

<p>phone number</p>

<p><a href="http://www.example.com" target="_blank">www.example.com</a></p>
</div>';

$no_newlines = str_replace(array("\n", "\r\n", "\r", "\t", "    "), "", $maptext);

echo($no_newlines);

输出:

<div><h2>Title</h2><p>Address line 1,<br />Address line 2</p><p>phone number</p><p><a href="http://www.example.com" target="_blank">www.example.com</a></p></div>

答案 1 :(得分:0)

这就是诀窍:

$tmpmaptext = $map['maptext'][$this->config->get('config_language_id')];
$tmpmaptext = preg_replace('/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/', '', $tmpmaptext);

能够移除所有其余部分,现在呈现完美。