Php 如何使浏览器将html标记作为标记而不是文本来读取
我有一个表单,您可以在其中插入一些存储在数据库中的文本。然后检索记录并将其包含在html页面中 用户希望在文本中包含href链接,并能够在html页面中使用该链接。 我现在拥有的是:Php 如何使浏览器将html标记作为标记而不是文本来读取,php,mysql,Php,Mysql,我有一个表单,您可以在其中插入一些存储在数据库中的文本。然后检索记录并将其包含在html页面中 用户希望在文本中包含href链接,并能够在html页面中使用该链接。 我现在拥有的是: 您可以通过包含Stackoverflow.com的文本区域将文本输入数据库 在数据库中,链接被正确存储(我在字段中使用bindValue) 如果打开html页面,您会看到文本链接:除了Stackoverflow.com clickable,您还会看到Stackoverflow.com 我知道,对你们中的许多人来
- 您可以通过包含Stackoverflow.com的文本区域将文本输入数据库
- 在数据库中,链接被正确存储(我在字段中使用bindValue)
- 如果打开html页面,您会看到文本链接:除了Stackoverflow.com clickable,您还会看到Stackoverflow.com
非常感谢这是我为链接所做的
<?php
$text = "http://stackoverflow.com";
echo preg_replace('@((http?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)*)@', '<a href="$1" target="_blank">$1</a>', $text);
?>
这是php为您提供的保护功能!而且你应该手动操作,并且只针对a标签 当你的用户可以放置任何文本(包括html、css、js)时,他/她会对你的页面造成很大的伤害
解决这一问题的最简单和最好的方法是,不要在文本中添加a标记,而是添加类似bb代码(google)的内容,然后在从数据库中获取的标记与真实标记一起替换。在网页上打印输出时,请使用以下功能
htmlspecialchars_decode($text);
其中$text是包含描述文本的变量
阅读更多有关它的信息当您输出链接时,是否将其包含在“”标记之间?
您是否正在执行以下操作same@Gar对我对问题进行了编辑,以包含我看到的内容的打印屏幕。您最有可能使用html_entities函数从数据库打印出结果,这导致了这种行为。我看到了。我上传链接时也会做类似的事情。我已经编辑了这个问题,包括我的页面截图。我只希望看到Truckemotion 1,并且能够使用href访问www.Truckemotion.itI。我已经用htmlspecialchars过滤标记,在PDO查询中绑定值,等等。我不担心安全问题。顺便说一句,唯一可以发布的用户是网站本身的所有者。我不想使用bbcode有很多原因。我的问题不在输入端:它在输出端!