将HTML标记回显到php输入值

时间:2013-08-07 15:26:59

标签: php html

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

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

其中$ row ['id']的值为'<b>test</b>',问题在于echo的输出,<b>的结束标记将关闭输入标记,因此值为只输入'<b' 感谢。

5 个答案:

答案 0 :(得分: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;

以上两个都是正确的,第二个更安全。

答案 1 :(得分:3)

  1. 通过htmlspecialchars传递数据,以便安全插入HTML属性(通过将具有特殊含义的字符转换为实体)。
  2. 引用属性值(您的代码在输出的行ID周围没有"),以便将空格=等视为值的一部分
  3. 这样:

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

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

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

答案 2 :(得分:2)

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

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

还为value的值添加了引号。

答案 3 :(得分:1)

你只需要妥善逃脱:

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

答案 4 :(得分:-1)

您将得到想要的东西:-

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