我有一个包含多个电影简介的数据库 - 这是通过电子邮件发送给我的文本块,我将其复制粘贴到我的数据库中。 我现在正试图用一个简单的PHP脚本解析它们 - 我一直在收到错误。 我怀疑它是由于双引号,&符号和文本块中的其他特殊字符 - 所以我该如何清理它?
这是我的代码:
$query = "select * from Films";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
{
echo "<film>";
echo "<ID>";
echo $row['ID'];
echo "</ID>";
echo "<FilmName>";
echo $row['FilmTitle'];
echo "</FilmName>";
echo "<FilmGenre>";
echo $row['FilmGenre'];
echo "</FilmGenre>";
echo "<FilmSynopsis>";
echo $row['FilmSynopsis'];
echo "</FilmSynopsis>";
echo "</film>";
}
我几乎总是在SYNOPSIS部分崩溃 - 因为这是最多的文本,因此最多出现“有问题”的字符。
有没有办法在飞行中清理它?
答案 0 :(得分:2)
在将内容回显到XML中之前,您需要使用htmlentities($str, ENT_DISALLOWED)
来转义内容:
$query = "select * from Films";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
{
echo "<film>";
echo "<ID>";
echo htmlentities($row['ID'], ENT_DISALLOWED);
echo "</ID>";
echo "<FilmName>";
echo htmlentities($row['FilmTitle'], ENT_DISALLOWED);
echo "</FilmName>";
echo "<FilmGenre>";
echo htmlentities($row['FilmGenre'], ENT_DISALLOWED);
echo "</FilmGenre>";
echo "<FilmSynopsis>";
echo htmlentities($row['FilmSynopsis'], ENT_DISALLOWED);
echo "</FilmSynopsis>";
echo "</film>";
}
答案 1 :(得分:0)
试试这个:
htmlentities($string, ENT_QUOTES,'UTF-8')