代码之家  ›  专栏  ›  技术社区  ›  Tom

符号/条令:行动中的非序列化与模板

  •  0
  • Tom  · 技术社区  · 14 年前

    有人能告诉我为什么调用“unserialize”在操作中工作正常,但在模板中会出现偏移错误吗?

    $this->clean = unserialize($this->raw);
    <?php echo $clean ?>
    

    但如果直接在模板中调用,则不会:

    <?php echo unserialize($raw) ?>
    

    1 回复  |  直到 14 年前
        1
  •  3
  •   Amy B    14 年前

    sfOutputEscaperArrayDecorator unserialize($var) ,您实际上是在尝试取消SfoutputEscaperarArrayDecorator类的序列化。

    我建议在settings.yml中关闭输出转义:

    escaping_strategy:     false
    

    更新 :

    如果关闭转义策略,则需要手动转义用户的输入(以防止XSS) htmlSpecialCharacters()

    Symfony类为您做到了这一点,但这意味着它也会转义每一个数字和字符——您已经知道其中99%是安全的(id、日期、您自己的内容)。当我关闭自动转义时,我的服务器负载显著下降。

    记住Symfony 双重适用 如果你经过一个 部分的,有意义的 > 将成为 &amp;gt;