繁体   English   中英

替换新行| PHP

[英]Replace new line | PHP

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

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

简单的str_replace("\\n", "", $text); 不适合我。 我也试过ltrimtrimrtrim

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

像这样:

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

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

你只需要一个电话:

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

要么

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

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

你试过str_replace("\\r\\n", "", $text);

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

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM