我正在开发一个脚本,它使用file_get_contents()
从网页获取所有内容,然后删除所有HTML,JavaScript和CSS格式并将其存储在变量中。
然后我将该PHP变量分配给JavaScript变量。 现在我的问题是文本(我已分配给JavaScript var)包含许多换行符,这使我在运行程序时出现JavaScript错误。
简单str_replace("\n", "", $text);
对我不起作用。我还尝试过ltrim
,trim
,rtrim
。
答案 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只在双引号内转换为文字换行符。这当然适用于所有控制字符。