【发布时间】:2016-03-01 13:26:33
【问题描述】:
听起来很简单,但我现在有点困惑。
我有这个 DB 对象,其中包含一些我想以 html 形式输出的值。
简化问题:
$result 是我的 db 对象,这是我想要输出一些可以包含双引号或单引号的文本的 html 输入。
<input class="someclass" name="desc" id="descID" type="text" value="<?=$result['desc'];?>" placeholder="<Description>" />
如果$result['desc'] 包含这样的文字:'你听说过“foobar”吗?'
第一个双引号之后的所有内容都被切断并以这样的方式结束:'你听说过'吗。
我已经尝试过但没有成功:
htmlspecialchars 像这样
value="<?=htmlspecialchars($result['desc']);?>"或像这样value="<?=htmlspecialchars($result['desc'], ENT_QUOTES);?>"添加斜杠
注意:我的 DB(mssql) 正确保存了字符串。只在我的 html 中有问题。
如果你能在这里帮助我,我会很高兴。谢谢。
【问题讨论】:
-
只是为了好玩,你也试过htmlspecialentities吗?
-
<?php $t = 'Did you hear about "foobar"?'; ?> <input class="someclass" name="desc" id="descID" type="text" value="<?= htmlspecialchars($t);?>" />工作喜欢魅力!! -
这些 foobar 周围的双引号是这样插入到您的数据库中的吗?如果是这样,请在显示字符串之前转义它们。
-
好的,所以我测试了这些,@Parixit 的解决方案似乎有效,但只有当我实际输入
<?php $t = 'Did you hear about "foobar"?'; ?>时。我试过<?php $t = $result['desc']; ?>没用 -
@EddeAlmeida 我的数据库按字面意思将文本保存为您是否听说过“foobar”。你的建议正是我在这里想要做的。
标签: php html sql-server htmlspecialchars