2015-09-06 25 views
0

所以我有轻微的问题。我正在开发的PHP程序允许网页设计师有时会发布一些代码,并将其放入后端数据库。有时设计师可能也想讨论html实体。在textarea中使用htmlentities转义HTML,但回到数据库的HTML

所以我们可以说设计师增加了一行代码数据库是这样的:

<p>hellos friend</p> 

所以我用PDO坚持在数据库中此行没有逃脱它,一切都很好,它显示了良好的。现在,我想的网页设计师能够编辑这一点,所以当我拉出来的数据库我使用这个代码后:

$post = htmlentities($post); 

现在是很好的,我可以插入到这一点我的编辑:

<textarea>$post</textarea> 

但是我们有问题,因为这家伙编辑该代码,他提交并返回到数据库中,现在它得到了HTML实体,具有& LT;而不是<和& gt;代替>(这是很难在SA键入这一点,重新编码它)

&lt;p&gt;hellos friend&lt;/p&gt; 

所以现在它是错的数据库中,所以当我再次显示它,它显示的实体。

所以也许我可以编辑它,并重新添加的所有实体,如果有这样的事情后运行的ヶ辆相反的,但带来了另一个问题:

如果一个网页设计师告诉什么其他人“嗨,伙计,这是一个HTML实体是什么,它是类型化这样的:&LT;你应该使用它”

然后就是会变成卡住回不一个实体,你明白我的意思吗?有没有解决方案?

回答

1

我认为您正在寻找html_entity_decode()功能。这与htmlentities()相反。它为lt回&转换成<

http://php.net/manual/en/function.html-entity-decode.php

因为你需要有设计逃脱HTML实体某种程度上你的第二个问题。我不认为PHP有​​办法摆脱它们,但我可能是错的。这可能是你必须自己实现的东西,就像设计师在实体前面放置了一个\,以便将它与假设转换为HTML的实体区分开来,然后解析输入以查找转义实体。