将HTML标记回显到php输入值中

将HTML标记回显到php输入值中,php,html,Php,Html,我有问题,我想回显字符串,这是html标记,所以我不知道如何说,但这是我的代码 echo '<input type="hidden" name="id" value='.($row['id']).'>'; echo'; 如果$row['id']的值是'test',则问题在于回声的输出,的结束标记将关闭输入标记,因此输入的值仅为 传递数据以确保安全地插入HTML属性(通过将具有特殊含义的字符转换为实体) 引用属性值(您的代码在输出的行id周围没有“),因此空格、=等将被视为值的一部

我有问题,我想回显字符串,这是html标记,所以我不知道如何说,但这是我的代码

echo '<input type="hidden" name="id" value='.($row['id']).'>';
echo';
如果$row['id']的值是
'test'
,则问题在于回声的输出,
的结束标记将关闭输入标记,因此输入的值仅为

  • 传递数据以确保安全地插入HTML属性(通过将具有特殊含义的字符转换为实体)
  • 引用属性值(您的代码在输出的行id周围没有
    ),因此空格、
    =
    等将被视为值的一部分
  • 例如:

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

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

    您只需要正确地转义:

    echo '<input type="hidden" name="id" value="'.($row['id']).'">';
    
    echo';
    
    在echo语句中使用
    htmlspecialchars
    ,如下所示:

    echo '<input type="hidden" name="id" value="' . htmlspecialchars($row['id']) . '">';
    
    echo';
    
    还为
    值添加了引号($row['id',entu QUOTES)
    这将
    编码为

    $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;
    
    $str=“引号”为粗体”;
    回音频率($str);
    //输出:一个“报价”为b旧/b
    echo Htmlenties($str,ENT_报价);
    //输出:A';引号是b页码/b
    

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

    您将得到您想要的:-


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

    通过htmlentities函数运行它。您只是缺少一组围绕该值的双引号。我会使用
    而不是
    \”
    ,因为其他属性都在双引号中。使用什么?这是一场区别对待的游戏。答案应该能解释他们在做什么。很明显,他们改变了什么。不管怎样,我已经对其进行了编辑,使其非常清晰。您还在value属性的值周围添加了引号。这些并不明显。引号很容易漏掉。
    $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;