繁体   English   中英

如何在php中打印HTML代码

[英]How to print HTML code in php

我正在尝试开发一个简单的PHP页面,允许我在数据库中打印一些数据。 问题是有些数据不“干净”,我认为在数据中有一些html标签(我想)。

数据的示例如下:

%3Ch1%3E%3Cspan+style%3D%22color%3A+rgb%280%2C+0%2C+51%29%3B%22%3EDirettore+Artistico%3C%2Fspan%3E%3C%2Fh1%3E

为了解决我的问题,我尝试了这个:

<?php
 $result = mysql_query("SELECT text FROM mutable WHERE (id_obj = 1)");
 while($row = mysql_fetch_array($result)){  
 echo "<p>" . html_entity_decode($row['text']) . "</p>";  
}

这个解决方案不起作用,我不知道是否重要,但我的数据库的字符集是:latin1_swedish_ci

它的urlencoded html

检查一下urlencode($userinput)输出:

%3Ch1%3E%3Cspan+style%3D%22color%3A+rgb%280%2C+0%2C+51%29%3B%22%3EDirettore+Artistico%3C%2Fspan%3E%3C%2Fh1%3E

这个urldecode($userinput)输出:

<h1><span style="color: rgb(0, 0, 51);">Direttore Artistico</span></h1>

编辑:

从你的问题:

<?php
 $result = mysql_query("SELECT text FROM mutable WHERE (id_obj = 1)");
 while($row = mysql_fetch_array($result)){  
 echo "<p>" . html_entity_decode($row['text']) . "</p>";  
}

不要使用mysql_ *函数。 请改用PDO

为什么我不应该在PHP中使用mysql_ *函数?

如果您不知道如何生成这些数据,则无法知道要获取原始数据的转换。 看起来数据是urlencoded ,这很容易与urldecode反转。

如果您想要解释HTML,您可以:

echo '<p>' . urldecode($row["text"]) . '</p>';
// result:
<p><h1><span style="color: rgb(0, 0, 51);">Direttore Artistico</span></h1></p>

如果您希望HTML以纯文本形式显示,则需要对其进行编码:

echo '<p>' . htmlspecialchars(htmlenturldecode($row["text"])) . '</p>';
// result:
<p>&lt;h1&gt;&lt;span style=&quot;color: rgb(0, 0, 51);&quot;&gt;Direttore Artistico&lt;/span&gt;&lt;/h1&gt;</p>

强文

$string= "%3Ch1%3E%3Cspan+style%3D%22color%3A+rgb%280%2C+0%2C+51%29%3B%22%3EDirettore+Artistico%3C%2Fspan%3E%3C%2Fh1%3E";
echo urldecode($string);

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM