[英]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 。
如果您不知道如何生成这些数据,则无法知道要获取原始数据的转换。 看起来数据是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><h1><span style="color: rgb(0, 0, 51);">Direttore Artistico</span></h1></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.