如何在HTML中编码href属性

如何在HTML中编码href属性,第1张

概述应该对href属性的内容做什么:HTML或URL编码? <a href="???">link text</a> 一方面,由于href属性包含URL我应该使用URL编码. 另一方面,我将此URL插入HTML,因此必须进行HTML编码. 请帮我克服这个矛盾. 谢谢. 编辑: 这是矛盾.假设可能有’<'和'>‘ URL中的字符. URL编码不会转义它们,因此href属性中会有保留的HTML字符,这违反了 应该对href属性的内容做什么:HTML或URL编码?
<a href="???">link text</a>

一方面,由于href属性包含URL我应该使用URL编码.
另一方面,我将此URL插入HTML,因此必须进行HTML编码.

请帮我克服这个矛盾.

谢谢.

编辑:

这是矛盾.假设可能有’<'和'>‘ URL中的字符. URL编码不会转义它们,因此href属性中会有保留的HTML字符,这违反了标准. HTML编码将转义’<'和'>‘字符和HTML将有效,但在此之后会出现意外的’&’ URL中的字符(这是URL的保留字符,它用作查询字符串参数的分隔符).

Reserved URL characters形成reserved HTML characters的超集,除了’<'和'>‘保留给HTML但不保留URL.

编辑2:

我错了’<'和'>‘它们实际上是由URL编码转义的百分比.如果是这样,在这种情况下URL编码就足够了,不是吗?

解决方法 正常构造URL.遵循构建URL的规则.对您输入的数据进行编码.

然后正常构造HTML.遵循构建HTML的规则.在将数据放入其中时对数据进行编码.

即两者(但顺序正确).

它们不是相互排斥的,所以没有矛盾.

例如(这是一个简化的例子,假设$_GET中的数据是正确且存在的,不要在现实世界中这样做):

$search_term = $_GET['q'];$page = $_GET['page'];$next_page = $page + 1;$next_page_url = 'http://example.com/search?q=' . urlencode($search_term) . '&page=' . urlencode($page);$HTML = '<a href="' . HTMLspecialchars($next_page_url) . '">link text</a>';
总结

以上是内存溢出为你收集整理的如何在HTML中编码href属性全部内容,希望文章能够帮你解决如何在HTML中编码href属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1106688.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存