PHP str_替换,\r\n为MySQL中真正的新行
我有一个带标签的文本,我想把它作为新行保存到MySQL数据库中。不是HTML标签 例如: $string='此处有一些带标记的文本。' 我想将其保存到MySQL中,如下所示: 一些带有 标签在这里PHP str_替换,\r\n为MySQL中真正的新行,php,Php,我有一个带标签的文本,我想把它作为新行保存到MySQL数据库中。不是HTML标签 例如: $string='此处有一些带标记的文本。' 我想将其保存到MySQL中,如下所示: 一些带有 标签在这里 为此,您需要更换什么样的权利?谢谢。来试试这个。这将替换所有到的\r\n 您可以按照您的建议使用str_replace $string = 'some text with<br>tags here.'; $string = str_replace('<br>', "\r\n",
为此,您需要更换什么样的权利?谢谢。来试试这个。这将替换所有到的\r\n 您可以按照您的建议使用str_replace
$string = 'some text with<br>tags here.';
$string = str_replace('<br>', "\r\n", $string);
您可以使用htmlentities-将所有HTML字符转换为实体,并使用HTML_entity_decode将HTML实体转换为字符
$string = 'some text with<br>tags here'
$a = htmlentities($string);
$b = html_entity_decode($a);
echo $a; // some text with<br>tags here
echo $b; // some text with<br>tags here
尝试:
mysql\u real\u escape\u字符串
PHP中已经有一个函数可以将新行转换为名为nl2br的br。然而,事实并非如此。相反,您可以创建自己的函数,如下所示:
function br2nl($string)
{
$breaks = array("<br />","<br>","<br/>");
return str_ireplace($breaks, "\r\n", $string);
}
然后,无论何时您想要使用它,只需按如下方式调用它:
$original_string = 'some text with<br>tags here.';
$good_string = br2nl($original_string);
有三件事值得一提:
最好按照用户输入的方式将数据存储在数据库中,然后在检索数据时进行转换。当然,这取决于你在做什么。
某些系统(如Windows)使用\r\n。某些系统(如Linux和Mac)使用\n。某些系统(如旧版Mac系统)允许用户\r使用新行字符。鉴于此,特别是如果您选择使用第1点。在上面,您可能更喜欢使用PHP常量PHP\u EOL,而不是\r\n。这将提供正确的新行字符,无论您在哪个系统上。
我在上面发布的方法将比preg_replace更有效。但是,它没有考虑非标准HTML,例如和其他变体。如果需要考虑这些变化,则应使用preg_replace函数。话虽如此,人们可以过度思考所有可能的变化,但仍然无法解释所有变化。例如,考虑属性和空白的许多其他组合。
$string = 'some text with<br>tags here'
$a = htmlentities($string);
$b = html_entity_decode($a);
echo $a; // some text with<br>tags here
echo $b; // some text with<br>tags here
function safe($value){
return mysql_real_escape_string($value);
}
function br2nl($string)
{
$breaks = array("<br />","<br>","<br/>");
return str_ireplace($breaks, "\r\n", $string);
}
$original_string = 'some text with<br>tags here.';
$good_string = br2nl($original_string);