3

我有问题,我想回显作为 html 标签的字符串,所以我不知道怎么说,但这是我的代码

echo '<input type="hidden" name="id" value='.($row['id']).'>';

其中 $row['id'] 的值是'<b>test</b>',问题出在 echo 的输出上,结束标签<b>将关闭输入标签,所以输入的值只是'<b' 谢谢。

4

5 回答 5

5

htmlentities($row['id'],ENT_QUOTES)这将编码< >&lt;&gt;

$str = "A 'quote' is <b>bold</b>";


echo htmlentities($str);
// Outputs: A 'quote' is &lt;b&gt;bold&lt;/b&gt;

echo htmlentities($str, ENT_QUOTES);
// Outputs: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;

上面两个都对,第二个更安全。

于 2013-08-07T15:30:45.230 回答
4
  1. 传递数据htmlspecialchars以使其安全地插入 HTML 属性(通过将具有特殊含义的字符转换为实体)。
  2. "引用属性值(您的代码在输出的行 id 周围没有),以便空格=等将被视为值的一部分

这样的:

echo '<input type="hidden" name="id" value="'. htmlspecialchars($row['id']) . '">';

或者,更好的是,不要在 PHP 模式下输出标记块,在需要变量/函数调用之前切换到直接输出模式:

<input type="hidden" name="id" value="<?php echo htmlspecialchars($row['id']); ?>">
于 2013-08-07T15:28:21.093 回答
3

htmlspecialchars在您的 echo 语句中使用,如下所示:

echo '<input type="hidden" name="id" value="' . htmlspecialchars($row['id']) . '">';

还为 的值添加了引号value

于 2013-08-07T15:30:02.897 回答
1

你只需要正确地逃脱:

echo '<input type="hidden" name="id" value="'.($row['id']).'">';
于 2013-08-07T15:28:22.350 回答
-1

你会得到你想要的:-

htmlentities($this->input->post('txtEditor'));

于 2019-12-13T10:56:18.253 回答