我有一个包含多个电影概要的数据库 - 这些是通过电子邮件发送给我的文本 block ,我将其复制粘贴到我的数据库中。 我现在尝试用一个简单的 PHP 脚本解析它们 - 但我不断收到错误。 我怀疑这是由于文本 block 中的双引号、与号和其他特殊字符造成的 - 那么我该如何清理它?
这是我的代码:
$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>";
}
我几乎总是在概要部分崩溃 - 因为这是文本量最多的部分,因此“有问题”的字符出现最多。
有什么方法可以即时清理吗?
最佳答案
您需要使用htmlentities($str, ENT_DISALLOWED)
在将内容回显到 XML 之前对其进行转义:
$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>";
}
关于php - MySQL 到 PHP 双引号问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10841322/