Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示格式化文本_Php_Html - Fatal编程技术网

Php 显示格式化文本

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

我有一个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_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之后执行此操作,因为它会破坏您将“”更改为实体的实际文本:

&lt; / &gt; 
尝试添加nl2br呼叫

$text = $_POST['text'];
$text = htmlentities($text, null, "UTF-8", null);
$text = nl2br($text);
$text = mysql_real_escape_string( $text );
您必须在htmlentities之后执行此操作,因为它会破坏您将“”更改为实体的实际文本:

&lt; / &gt; 

当用户在表单中输入内容时,换行符在表单中显示为换行符,因为它的格式为纯文本

当浏览器解析文本时,它不关心文本换行符,只关心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文档中搜索您提到的语法。在写入数据库之前替换换行符是个坏主意。如果要编辑该文本,则需要在将其输出到文本区域之前替换

。在写入数据库之前替换换行符不是个好主意。如果要编辑该文本,则需要在将其输出到文本区域之前替换