我有问题,我想回显作为 html 标签的字符串,所以我不知道怎么说,但这是我的代码
echo '<input type="hidden" name="id" value='.($row['id']).'>';
其中 $row['id'] 的值是'<b>test</b>'
,问题出在 echo 的输出上,结束标签<b>
将关闭输入标签,所以输入的值只是'<b'
谢谢。
htmlentities($row['id'],ENT_QUOTES)
这将编码<
>
为<
和>
$str = "A 'quote' is <b>bold</b>";
echo htmlentities($str);
// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($str, ENT_QUOTES);
// Outputs: A 'quote' is <b>bold</b>
上面两个都对,第二个更安全。
htmlspecialchars
以使其安全地插入 HTML 属性(通过将具有特殊含义的字符转换为实体)。"
引用属性值(您的代码在输出的行 id 周围没有),以便空格=
等将被视为值的一部分这样的:
echo '<input type="hidden" name="id" value="'. htmlspecialchars($row['id']) . '">';
或者,更好的是,不要在 PHP 模式下输出标记块,在需要变量/函数调用之前切换到直接输出模式:
<input type="hidden" name="id" value="<?php echo htmlspecialchars($row['id']); ?>">
htmlspecialchars
在您的 echo 语句中使用,如下所示:
echo '<input type="hidden" name="id" value="' . htmlspecialchars($row['id']) . '">';
还为 的值添加了引号value
。
你只需要正确地逃脱:
echo '<input type="hidden" name="id" value="'.($row['id']).'">';
你会得到你想要的:-
htmlentities($this->input->post('txtEditor'));