从ob_get_clean()输出中删除换行符

时间:2012-07-12 07:38:14

标签: php output-buffering

好的,我确实有以下代码

<?php
ob_start();
?>
codepad is an 
online compiler/interpreter, 
and a simple collaboration tool.
Paste 

your code below, 
and codepad wi
ll run 
it and give you a short 
URL you can use to share
 it in chat or email
<?php
$str = str_replace('\r\n','',trim(ob_get_clean()));
echo $str;
?>

你可以在这里看到它是如何运作的 http://codepad.org/DrOmyoY9

现在我想要的是是从ob_get_clean()的存储输出中删除换行符。

我几乎浏览了互联网,了解如何删除字符串中的换行符,除了使用慢速preg_replace()之外,这是删除换行符的常用且最快的方法。

为什么会这样?这已经是个bug吗?或者我只是错过了什么?

2 个答案:

答案 0 :(得分:2)

我想你错过了一件事,应该是:

$str = str_replace("\r\n",'',trim(ob_get_clean()));

使用双引号而不是单引号

答案 1 :(得分:2)

\ r \ n是windows风格,但如果用户使用linux或mac,则会有所不同。所以最好的解决方案是:

$str = str_replace(array("\r","\n"),'',trim(ob_get_clean()));