我正在尝试开发一个简单的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
答案 0 :(得分:3)
其urlencoded html
Check this:class NewsController < ApplicationController
before_action :current_user, only: [:create, :destroy]
def create
if params[:action] == "national"
@news = catid.current_user.news.build(news_params)
if @news.save
flash[:success] = "News Posted"
redirect_to root_url
else
@feed_items = []
render 'category/national'
end
end
end
end
输出:
urlencode($userinput)
And this:%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>
不要使用mysql_ *函数。请改用PDO。
答案 1 :(得分:2)
如果您不知道如何生成此数据,则无法知道要获取原始数据的转换。 看起来就像数据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>
答案 2 :(得分:-2)
强文
$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);
&GT;