替换新行| PHP

时间:2011-01-03 14:55:12

标签: php javascript replace

我正在开发一个脚本,它使用file_get_contents()从网页获取所有内容,然后删除所有HTML,JavaScript和CSS格式并将其存储在变量中。

然后我将该PHP变量分配给JavaScript变量。 现在我的问题是文本(我已分配给JavaScript var)包含许多换行符,这使我在运行程序时出现JavaScript错误。

简单str_replace("\n", "", $text);对我不起作用。我还尝试过ltrimtrimrtrim

6 个答案:

答案 0 :(得分:4)

您正在为JavaScript变量分配字符串,您可以使用json_encode

像这样:

<script type="text/javascript">
var g_text = <?php echo json_encode($text); ?>;
</script>

注意:您也可以通过这种方式将数组和数字传递给JavaScript。

答案 1 :(得分:2)

您只需要一个电话:

$string = str_replace(array("\r", "\n"), '', $string);

$string = strtr($string, "\r\n", '');

不需要多次调用,或者有多种组合...但它仍然需要处理3种可能的行结束序列(Windows \r\n,Linux \n,Mac \r)...

答案 2 :(得分:1)

您是否尝试过str_replace("\r\n", "", $text);

答案 3 :(得分:1)

试试这段代码。它取代了所有操作系统中所有可能的换行符。

str_replace("\r\n", "", $text); // Replace CR+LF
str_replace("\r", "", $text);   // Replace CR
str_replace("\n", "", $text);   // Replace LF

答案 4 :(得分:0)

我想存储的字符串包含html,对吧? 如果需要,可以使用nl2br将\ n转换为BR标记。

答案 5 :(得分:0)

仅供参考:请记住在搜索/替换换行符时始终使用双引号。如果您使用单引号,如:

print str_replace(array('\n', '\r\n', '\r'), '', $strBorked);

永远不会奏效!你必须使用:

print str_replace(array("\n", "\r\n", "\r"), '', $strBorked);

这是因为PHP不解释单引号内部,\ n是一个字符php只在双引号内转换为文字换行符。这当然适用于所有控制字符。