php html从元描述标记中删除换行符

时间:2011-07-18 17:15:53

标签: php line-breaks html

我正在使用PHP中的MYSQL数据库打印页面内容。我在db中有一个名为$ row ['description']

的文本字段

将用户输入存储到db时我只使用mysql_real_escape_string()所以我不编辑html

问题是我使用db中的这个字段作为html pages元描述标记。因此,如果用户在描述中插入换行符,则会在元描述标记内的页面源代码中导致换行符。我试图通过使用循环跳过br格式来删除换行符。我使用nl2br转换为br。

$desc_array=(explode(" ", $row['description']));
for($i=0; $i < 17;$i++){
    if(nl2br($desc_array[$i])=="<br />" || nl2br($desc_array[$i])=="<br/>"){
        $i++;
    } 

我检查了我的SQL文件,换行符显示为

\r\n\r\n

我试图像

那样检查这种格式
 $desc_array[$i])=="\r\n\r\n"
 $desc_array[$i])=="\r\n"
 $desc_array[$i])=="\n"
 $desc_array[$i])=="\r"

但仍会在描述标记中打印换行符。有什么想法吗?

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

当我一遍又一遍地遇到这种情况时,我会告诉你我的意见。

有时修剪\r\n\n会有所帮助,有时则不会。 在少数情况下,我发现我必须像这样删除:

<?php
$desc = "This
is a description";
// this is just a line break [enter]
$newDesc = str_replace(" 
", " ", $desc); // witch outputs This is a description
?>

我从来没有好奇心找出它为什么不想要\ r \ n或\ n,也许我现在要说明了:)