You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中在文本框显示iframe值:仅显示至首个双引号问题

看起来你踩了HTML属性引号冲突的坑啦!咱们来一步步解决:

问题根源

你存在数据库里的iframe代码肯定是带双引号的,比如<iframe src="xxx" width="yyy" ...>,而文本框的value属性也是用双引号包裹的。当PHP直接输出这段iframe代码时,浏览器会把第一个"当成value的结束标记,后面的内容就被当成了HTML的其他属性,自然不会显示在文本框里。

快速解决方法

用PHP的htmlspecialchars()函数把iframe内容转义一下,把特殊HTML字符转成实体,这样浏览器就会把它们当成普通文本处理,而不是HTML代码的一部分。修改你的代码如下:

<label>Location</label>
<input type="text" style="resize:vertical" class="md-input" name="locationmap" value="<?php echo htmlspecialchars($comp_row['comp_locationmap'], ENT_QUOTES); ?>">
<i class="glyphicon glyphicon-pushpin form-control-feedback glyphiconalign"></i>

这里的ENT_QUOTES参数很重要,它会同时转义单引号和双引号,彻底避免引号冲突的问题。另外顺便提一句,你的input标签里重复写了两次class="md-input",可以合并成一个,代码更整洁~

额外小贴士

如果之后需要把文本框里的内容再存回数据库,不需要做反向转义,因为htmlspecialchars()只是处理了显示层面的字符,不会改变原始内容的结构。要是之后需要把转义后的内容还原成原始HTML,用htmlspecialchars_decode()函数就可以啦。

内容的提问来源于stack exchange,提问作者Linu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:10:38