首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ><a href=中的Html实体

问<a href=中的Html实体
EN

Stack Overflow用户
提问于 2015-05-02 00:45:44
回答 4查看 1.2K关注 0票数 0

我的MySQL数据库有一些字段有时包含撇号,所以我要小心地编码html实体。例如,"Cote d'Or“在数据库中存储为"Cote d&039;Or”。

当MySQL查询填充href时,我在源代码中得到如下内容。

代码语言:javascript
复制
<a href="/page.php?location=Cote d&039;Or">Text link</a>

然而,当我点击这个链接时,我得到了一个403“禁止的”错误。在检查时,悬停在链接上会说它将&039;读为撇号。这似乎是页面错误的原因,因为在数据库中放置撇号会产生相同的错误,并且没有任何内容可以正常工作。

我现在的问题是,如何才能将html实体放在数据库中,同时仍能让链接正常工作?

EN

回答 4

Stack Overflow用户

发布于 2015-05-02 00:49:52

对于URL,您不希望使用htmlentities(),因为它用于显示超文本标记语言。

相反,您将希望使用urlencode()

代码语言:javascript
复制
$link = '/page.php?location=' . urlencode($location);

如果您的数据已经是超文本标记语言编码的,那么在通过urlencode()传递数据之前,您需要对其进行解码。一个很好的函数是html_entity_decode()

代码语言:javascript
复制
$location = html_entity_decode($row['location']);
$link = '/page.php?location=' . urlencode($location);
票数 3
EN

Stack Overflow用户

发布于 2015-05-02 00:48:50

您可能更好地使用filter_var($var, FILTER_SANITIZE_URL)

票数 0
EN

Stack Overflow用户

发布于 2015-05-02 00:49:32

虽然不是最好的方法,但既然您使用的是htmlentities(),那么您可以使用html_entity_decode()

来自:http://php.net/html_entity_decode

htmlentities()与

html_entity_decode()相反,它将字符串中的所有htmlentities转换为相应的字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29991187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档