【发布时间】:2011-09-26 12:41:39
【问题描述】:
有人刚刚在我的网站上创建了一个群组,其描述为\n\r。问题是我已经对描述文本这样做了:
//Convert all urls to links
$group_description = preg_replace('#([\s|^])(www)#i', '$1http://$2', $group_description);
$pattern = '#((http|https|ftp|telnet|news|gopher|file|wais):\/\/[^\s]+)#i';
$replacement = '<a href="$1" target="_blank">$1</a>';
$group_description = preg_replace($pattern, $replacement, $group_description);
$group_description = str_replace("\'" , "'", $group_description );
$group_description = nl2br($group_description);
/* Convert all E-mail matches to appropriate HTML links */
$pattern = '#([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.';
$pattern .= '[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)#i';
$replacement = '<a href="mailto:\\1">\\1</a>';
$group_description = preg_replace($pattern, $replacement, $group_description);
您可以在here 看到这种情况。
你看上面写着\n\r Welcome to Join。
为什么没有变成<br />标签?
这可能很重要,这是我首先将这段文本放入数据库的方式:
$group_description = mysql_real_escape_string($_POST['group_description']);
// And then insert the $group_description into the db without doing any more operations on it.
知道为什么我仍然收到\n\r 吗?
【问题讨论】:
-
` \r\n ` 只有一个文本,而不是特殊字符。这些实际上是 4 个字符:
backslash, r, backslash, n.