【发布时间】:2011-07-18 17:15:52
【问题描述】:
我正在用 PHP 打印来自 MYSQL 数据库的页面内容。我在数据库中有一个名为 $row['description']
的文本字段在将用户输入存储到数据库时,我只使用 mysql_real_escape_string(),所以我不编辑 html
问题是我使用 db 中的这个字段作为 html 页面元描述标记。因此,如果用户在描述中插入换行符,它们会导致元描述标记内页面源代码中的换行符。我试图通过使用循环跳过 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"
但仍会在描述标签中打印换行符。有什么想法吗?
【问题讨论】:
-
在你做完爆炸后尝试做
var_dump($desc_array)。它将准确显示每个元素变成了什么,以及它有多长(字符串长度)。这将使您了解其中隐藏的字符。 -
试过 var_dump() ,它似乎没有显示任何换行符。输出是从应该有换行符的地方 ([14]=> string(17) "balcony. There" [15]=> string(2) "is") 注意,'balcony.' 之间应该有换行符。和 'There' 但是这显示了它只是同一字符串的一部分?
-
查看页面源代码 - 浏览器中的 HTML 视图不支持文本换行符,并将它们视为不可见或空格字符。
-
好吧,我想如果描述标签中的换行符谷歌不将其包含在搜索结果中并且它不会影响排名,这并不重要吗?
-
您最好用其他东西替换它们,如下面的 webarto 回答中所示。
标签: php line-breaks html