将包含单引号和双引号的字符串回显到输入值
Echo string containing single and double quotes to input value
我正在从 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>";
如何解决这个问题,使其在文本框中正确显示字符串的值?
您需要将 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 "New Year's Eve countdown"' size='20' /></p>
正如您从此片段中看到的,在文本输入中显示所需的字符串:
<p>Info <input type='text' name='info' value='We will have a "New Year's Eve countdown"' size='50' /></p>
我正在从 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>";
如何解决这个问题,使其在文本框中正确显示字符串的值?
您需要将 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 "New Year's Eve countdown"' size='20' /></p>
正如您从此片段中看到的,在文本输入中显示所需的字符串:
<p>Info <input type='text' name='info' value='We will have a "New Year's Eve countdown"' size='50' /></p>