PHP - HTML 特殊字符在文本输入中不改变

PHP - HTML special characters don't change in text input

我使用 PFBC(PHP 表单生成器 class(PFBC))在页面中创建一个 TextBox 元素;

但是在带有特殊字符的字符串中他不会改变为普通字符:

例如:$razao = "livia's baby"

    $form->addElement(new Element\Textbox("Razão Social:", "data[RAZAO_SOCIAL]", array(
    "value" => htmlspecialchars_decode($razao, ENT_NOQUOTES) ,
    "required" => true
)));

他打印:

click to see output

有什么想法吗?

ENT_NOQUOTES 告诉 htmlspecialchars_decode 不要解码单引号或双引号。使用 ENT_QUOTES.

Will convert both double and single quotes.

对比

Will leave both double and single quotes unconverted.

-http://php.net/manual/en/function.htmlspecialchars-decode.php

htmlspecialchars_decode($razao, ENT_QUOTES)

演示:https://3v4l.org/ZSH7G

不过要小心,根据 $razao 的值,您可能会向 XSS 注入开放自己。