我有一个基本的文本区域表单。我想要做的是在提交后从文本区域中删除所有换行符。
这是我的 PHP:
<?php
if (isset ($_POST['comment_form_submit'])) {
$body = mysql_real_escape_string($_POST['body']);
$breaks = array("\r\n", "\n", "\r");
$newtext = str_replace($breaks, "", $body);
echo $newtext;
}
?>
现在假设我在填写表单时按下 Shift+enter,这会在我的字符串中创建一个\n,但是在提交表单之后,$newtext 仍然等于“\n”,不应该是“\n”已删除,因为我将其替换为“”
谢谢。
最佳答案
问题是您首先要为 MySQL 转义 \n
。试试这个:
<?php
if (isset ($_POST['comment_form_submit'])) {
$body = $_POST['body'];
$breaks = array("\r\n", "\n", "\r");
$newtext = str_replace($breaks, "", $body);
$newtext = mysql_real_escape_string($newtext);
echo $newtext;
}
?>
阅读您正在使用的转义函数以了解原因:http://php.net/mysql_real_escape_string
关于php - 无法从 PHP 中的字符串中删除所有换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9914707/