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>'
如何在不删除字符之间的正常间距的情况下获取所有这些新行?
答案 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);
能够移除所有其余部分,现在呈现完美。