htmlspecialchars无法在浏览器中正确呈现

时间:2013-11-23 08:30:26

标签: php html htmlspecialchars

我试图通过htmlspecialchars推送所有博文,以确保所有字符都能正确显示。 但是一旦被处理(从数据库中提取数据时调用它们,而不是在推送时),它们不会显示为字符! 只是他们的重复代码出现了。

以下是我如何获取数据:

<?php
    while($result = mysql_fetch_array( $results )
    {
        echo "
            <div class=\"post\"><article>
                <a href=\"//blog.jacoblukewood.com/p/" . $result['id'] . "\"><h3 class=\"posttitle\">" . htmlspecialchars($result['title']) . "</h3></a>
                <div class=\"postcontent\">
                <p>";
        if (strlen($result['content']) > 300)
        {
            echo nl2br(htmlspecialchars(substr($result['content'],0,300))) . "&hellip; " . "<a href=\"//blog.jacoblukewood.com/p/" . $result['id'] . "\">Continue Reading</a>";
        }
        else
        {
         echo nl2br(htmlspecialchars(substr($result['content'],0,300)));
        }
        echo "</p>
            </div>
        </article>

        <div class=\"poststats\">
            <a href=\"//blog.jacoblukewood.com/p/" . $result['id'] . "#disqus_thread\"></a><a>&nbsp;&bull;&nbsp;By&nbsp;" . $result['poster'] . "&nbsp;&bull;&nbsp;On&nbsp;" . htmlspecialchars(substr($result['timestamp'],0,10)) . "&nbsp;&bull;&nbsp;</a><a href=\"//blog.jacoblukewood.com/t/" . $result['topic'] . "\">" . htmlspecialchars($result['topic']) . "</a><br /></div>
        </div>";
    }
?>

它显示如下:

Yay it&#39;s working&#33;&#33;

Everything seems good, comments, url&#39;s, random colours etc&#33;

我的网站是jacoblukewood.com 另外,在将其推送到数据库之前,我应该使用htmlspecialchars吗?

1 个答案:

答案 0 :(得分:0)

老实说,我认为你不应该担心数据库中的htmlspecialchars。如果您使用的是UTF8字符集,则可以使用大多数字符。

如果您已经在数据库中编码了字符,请尝试使用http://www.php.net/manual/en/function.htmlspecialchars-decode.php,这将为您扭转此过程。