[英]Replace new line | PHP
我正在开发一个脚本,它使用file_get_contents()
从网页获取所有内容,然后删除所有HTML,JavaScript和CSS格式并将其存储在变量中。
然后我将PHP变量分配给JavaScript变量。 现在我的问题是文本(我已分配给JavaScript var)包含许多新行,这使我在运行程序时出现JavaScript错误。
简单的str_replace("\\n", "", $text);
不适合我。 我也试过ltrim
, trim
, rtrim
。
您正在为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.