Php 显示格式化文本
我有一个cms,我的页面管理员登录并发布各种新闻 页面是希腊语的,所以我使用utf-8编码 他们在文本区域中编写新闻/消息/任何内容,当他们点击post时,下面的php脚本准备文本,以便将其存储在mysql数据库中Php 显示格式化文本,php,html,Php,Html,我有一个cms,我的页面管理员登录并发布各种新闻 页面是希腊语的,所以我使用utf-8编码 他们在文本区域中编写新闻/消息/任何内容,当他们点击post时,下面的php脚本准备文本,以便将其存储在mysql数据库中 $text = $_POST['text']; $text = htmlentities($text, $quote_style = null, $charset = "UTF-8", $double_encode = null); $text = mysql_real_escape
$text = $_POST['text'];
$text = htmlentities($text, $quote_style = null, $charset = "UTF-8", $double_encode = null);
$text = mysql_real_escape_string( $text );
然后,当用户转到页面时,我从数据库中获取文本,并包含一个视图文件,该文件如下所示:
<p><?php echo $text; ?></p>
<div><?php echo nl2br($text); ?></div>
在调用视图以显示文本之前,也没有运气。您需要插入HTML
换行符:
<p><?php echo nl2br($text); ?></p>
您需要插入HTML
换行符:
<p><?php echo nl2br($text); ?></p>
按如下方式输出文本:
<p><?php echo $text; ?></p>
<div><?php echo nl2br($text); ?></div>
按如下方式输出文本:
<p><?php echo $text; ?></p>
<div><?php echo nl2br($text); ?></div>
尝试添加nl2br呼叫
$text = $_POST['text'];
$text = htmlentities($text, null, "UTF-8", null);
$text = nl2br($text);
$text = mysql_real_escape_string( $text );
您必须在htmlentities之后执行此操作,因为它会破坏您将“”更改为实体的实际文本:
< / >
尝试添加nl2br呼叫
$text = $_POST['text'];
$text = htmlentities($text, null, "UTF-8", null);
$text = nl2br($text);
$text = mysql_real_escape_string( $text );
您必须在htmlentities之后执行此操作,因为它会破坏您将“”更改为实体的实际文本:
< / >
当用户在表单中输入内容时,换行符在表单中显示为换行符,因为它的格式为纯文本 当浏览器解析文本时,它不关心文本换行符,只关心HTML换行符。因此,您需要将常规文本换行符转换为HTML换行符 这可以通过以下方式实现:
当用户在表单中输入内容时,换行符在表单中显示为换行符,因为它的格式为纯文本
当浏览器解析文本时,它不关心文本换行符,只关心HTML换行符。因此,您需要将常规文本换行符转换为HTML换行符
这可以通过以下方式实现:
使用标记而不是标记。使用标记而不是标记。这是您的实际代码吗
$text = $_POST['text'];
$text = mysql_real_escape_string( $text );
...save into database
$text = htmlentities($text, $quote_style = null, $charset = "UTF-8", $double_encode = null);
... show in view
$text = htmlentities($text, $quote_style = null, $charset = "UTF-8", $double_encode = null);
htmlentities($text, ENT_COMPAT | ENT_HTML401, 'UTF-8');
无需指定要定义的参数,将选项保留为默认值会很有好处,如下所示:
$text = nl2br(htmlentities($_POST['text'], ENT_COMPAT | ENT_HTML401, 'UTF-8'));
$text = mysql_real_escape_string($text);
如果您想在输入文本区域后使用换行符,还需要调用nl2br将新行转换为HTML换行符。这必须在调用htmlentities后完成,例如:
<p><?php echo nl2br($text); ?></p>
这是你的真实代码吗
htmlentities($text, ENT_COMPAT | ENT_HTML401, 'UTF-8');
无需指定要定义的参数,将选项保留为默认值会很有好处,如下所示:
$text = nl2br(htmlentities($_POST['text'], ENT_COMPAT | ENT_HTML401, 'UTF-8'));
$text = mysql_real_escape_string($text);
如果您想在输入文本区域后使用换行符,还需要调用nl2br将新行转换为HTML换行符。这必须在调用htmlentities后完成,例如:
<p><?php echo nl2br($text); ?></p>
将nl2br函数用作
将nl2br功能用作
因此换行符实际上是存储的,但浏览器无法识别它们,使用上面的功能可以做到这一点吗?是的。您可以通过查看生成页面的源代码来确认这一点。在这里,您将看到换行符仍然存在。因此换行符实际上是存储的,但浏览器无法识别它们,使用上面的功能可以做到这一点?是的。您可以通过查看生成页面的源代码来确认这一点。在这里,您将看到换行符仍然存在。这也将在大多数浏览器中默认改变外观(这意味着他必须使用css重新格式化文本),并且根据上下文,在语义方面可能不正确。这也将在大多数浏览器中默认改变外观(这意味着他必须使用css重新格式化文本),根据上下文的不同,它在语义上可能不正确。他的调用之所以有效,是因为赋值运算符返回赋值。这不是正确的方法,但有时可能会很有用,但会混淆。例如:call($a=1234);if($a==1234){echo“我在这里”}这会将1234传递给“call”函数并输入“if”,如果我没有错的话。@WoLfulus的观点很好,回想一下PHP崩溃的日子。但即便如此,忽略默认标志也不是一件好事。更新。编辑:是的,你没有错,var_dump($a='c');产生(字符串)'c'。我的edtor(蓝鱼)将所有变量作为NULL传递给函数。我只是没有更改值。我将在htmlentities文档中搜索您提到的语法。他的调用之所以有效,是因为赋值运算符返回赋值。这不是正确的方法,但有时可能会很有用,但会让人困惑。例如:call($a=1234);if($a==1234){echo“我在这里”}这将把1234传递给“call”函数并输入“if”if“if”if我没有错。@WoLfulus的观点很好,回想一下PHP崩溃的日子。但即便如此,忽略默认标志也不是一件好事。更新。编辑:是的,你没有错,var_dump($a='c');产生(string)'c'。我的edtor(蓝鱼)已预先键入函数,并将传递给它们的所有变量作为NULL。我只是没有更改值。我将在htmlentities文档中搜索您提到的语法。在写入数据库之前替换换行符是个坏主意。如果要编辑该文本,则需要在将其输出到文本区域之前替换
。在写入数据库之前替换换行符不是个好主意。如果要编辑该文本,则需要在将其输出到文本区域之前替换
。