0

$description来自数据库的数据或值是

<div><a href="www.google.com">Henry</a></div>

我的 HTML 代码

<input type="textbox" id="textbox" value=""/>
<input type="hidden" id="hidden" value="<?php echo $description; ?>"/>

输出 :
我的输出

如果代码是

<input type="hidden" id="hidden" value='<?php echo $description; ?>'/>

它工作正常!..有人请告诉我这个问题吗?

4

7 回答 7

1

您试图在表单中隐藏输入的值中包含 HTML 代码?这听起来不对。

如果您需要保持原样,您至少应该使用htmlentities将其设为字符串:

<input type="hidden" id="hidden" value="<?php echo htmlentities($description); ?>"/>

一个例子:

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

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

// Outputs: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str, ENT_QUOTES);
?>
于 2012-09-05T05:54:21.390 回答
1

看看 " 和 ' 之间的区别:

如果您的代码是:

 $description = <div><a href="www.google.com">Henry</a></div>

 <input type="hidden" id="hidden" value="<?php echo $description; ?>"/>

所以这实际上意味着

  <input type="hidden" id="hidden" value="<div><a href="www.google.com">Henry</a></div>"/>

和 url 关闭“值”之前的“,所以值实际上是 -

  value="<div><a href="

因此,请尝试在 url (google) 或值中使用 ' 而不是 " (不能同时使用两者)。

于 2012-09-05T05:57:21.923 回答
1

你的代码变成了这样...

<input type="hidden" id="hidden" value = "<div><a href="www.google.com" > Henry </a></div> "/>

您可以将其划分为...

<input type="hidden" id="hidden" value = "<div><a href="www.google.com" >

Henry

</a></div>

"/>

你就是这样得到的Henry"/>

于 2012-09-05T06:01:12.847 回答
1

这里有2个问题,

  1. 首先使用htmlentities将所有适用的字符转换为 HTML 实体。

    htmlentities($description);
    
  2. 并且使用单引号而不是双引号是公平的。参考链接

    默认情况下,SGML 要求使用双引号(ASCII 十进制 34)或单引号(ASCII 十进制 39)分隔所有属性值。当值由双引号分隔时,可以在属性值中包含单引号,反之亦然

于 2012-09-05T06:05:57.487 回答
1

这是您的浏览器看到代码的方式:

<input type="textbox" id="textbox" value="<div><a href="www.google.com">Henry</a></div>
"/>

看看双引号如何没有意义?

如果要保留双引号,则需要使用htmlentities

$description = htmlentities($description);

<input type="hidden" id="hidden" value="<?php echo $description; ?>"/>

此外,您的链接“www.google.com”将指向与您的目录相关的名为 www.google.com 的页面。请务必使用绝对路径:http ://www.google.com

于 2012-09-05T06:28:08.917 回答
0

像这样的简单替换

<div><a href='www.google.com'>Henry</a></div>

或者像这样

<input type="textbox" id="textbox" value=""/>
<input type="hidden" id="hidden" value='<?php echo $description; ?>'/>

并非两者都应该做到这一点。

于 2012-09-05T05:54:28.457 回答
0

http://php.net/manual/en/function.strip-tags.php

试试这个:

div><a href='www.google.com'>Henry</a></div>

<input type="textbox" id="textbox" value=""/>
<input type="hidden" id="hidden" value='<?php echo strip_tags($description); ?>'/>
于 2012-09-05T05:58:54.810 回答