【问题标题】:Echo string containing single and double quotes to input value包含单引号和双引号的回显字符串以输入值
【发布时间】:2021-01-01 01:52:41
【问题描述】:

我正在从 XML 中提取一个字符串,并希望将其作为输入文本框的值插入。我遇到了这个包含单引号和双引号的字符串的问题:

We will have a "New Year's Eve countdown"

这是我用来输出的代码。我尝试过使用htmlspecialchars,但由于字符串中混合了引号,它并不能阻止 html 代码中断。

echo "<p>Info <input type='text' name='info' value='".htmlspecialchars($result->info)."' size='20' /></p>";

我该如何解决这个问题,以便在文本框中正确显示字符串的值?

【问题讨论】:

    标签: php input htmlspecialchars


    【解决方案1】:

    您需要使用 ENT_QUOTES 标志到 htmlspecialchars 以使其将双 和 单引号都转换为其等效的 html 实体:

    echo "<p>Info <input type='text' name='info' value='".htmlspecialchars($result->info, ENT_QUOTES)."' size='20' /></p>";
    

    这将产生以下 HTML:

    <p>Info <input type='text' name='info' value='We will have a &quot;New Year&#039;s Eve countdown&quot;' size='20' /></p>
    

    从这个 sn-p 可以看出,在文本输入中显示所需的字符串:

    &lt;p&gt;Info &lt;input type='text' name='info' value='We will have a &amp;quot;New Year&amp;#039;s Eve countdown&amp;quot;' size='50' /&gt;&lt;/p&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 1970-01-01
      • 2018-03-20
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多