Php HTML不';如果没有渲染,为什么会发生这种情况?
在PHP+MySQL项目中,有一个字符串来自包含HTML标记的MySQL表,但这些标记从未被Google Chrome或我尝试过的任何浏览器呈现: 您可以看到HTML(p,strong)没有被浏览器解释 因此,结果是: 编辑:HTML/PHPPhp HTML不';如果没有渲染,为什么会发生这种情况?,php,html,webkit,render,Php,Html,Webkit,Render,在PHP+MySQL项目中,有一个字符串来自包含HTML标记的MySQL表,但这些标记从未被Google Chrome或我尝试过的任何浏览器呈现: 您可以看到HTML(p,strong)没有被浏览器解释 因此,结果是: 编辑:HTML/PHP <div class="winery_description"> <?php echo $this->winery['description']; ?> </div> $this->winery是
<div class="winery_description">
<?php echo $this->winery['description']; ?>
</div>
$this->winery
是SQL选择的数组结果
编辑2:我是世界上最笨的人,来源包含实体。因此,新的问题是:如何强制解释实体?
真实来源:
有什么建议吗?谢谢 您可能正在使用
innerText
或textContent
来设置div的内容,它只是将div的子节点替换为单个文本节点
使用
innerHTML
让浏览器解析HTML并创建适当的DOM节点。由@Paulpro提供的答案是正确的
另外请注意,如果使用的是jQuery
,请确保使用.html()
方法,而不是.text()
方法:
$('#your_element').html('<h1>This works!</h1>');
$('#another_element').text('<h2>Wrong; you will see the <h2> in the output');
$('your#u元素').html('This works!');
$(“#另一个_元素”).text('错误;您将在输出中看到');
你能展示创建这个的HTML/PHP代码吗?如果你查看源代码而不是DOM,你会看到什么?我同意@Barmar。执行“查看源代码”,因为在Firebug/Developer控制台中看不到任何编码。数据库中的描述必须包含HTML实体,更新数据库的脚本可能在插入之前调用htmlentities()
。试着用die(''.htmlentities($var)。''.
去看它。虽然听起来很愚蠢,但我的问题的“好”答案是使用html\u实体解码($str)代码>…这不是javascript驱动的,而是直接从数据库中获取的。感谢您的回复,并对造成的混乱表示歉意。@Tomshrests它必须包含HTML实体。注意,die($var)
仍然允许浏览器解析这些HTML实体,您仍然可以看到表示,而不是实际字符。尝试:echo'',print\r($var,true),''代码>@tomshresds抱歉,这仍然不会显示它们。Doecho-htmlentities($var)
查看HTML页面中的实际值。无论是这样还是以内容类型输出页面:text/plain
感谢您的回复和评论,innerText/textContent与innerHTML的对比我不知道:)我的源代码最终包含实体,但浏览器不会解释它们:-/@Tomshresds使用您的原始代码,当您查看源代码时,您看到的不是inspect元素,而是实体吗?如果是,这就是为什么浏览器不会解释它们。