gpt4 book ai didi

html - 如何在 HTML 中编码 href 属性

转载 作者:技术小花猫 更新时间:2023-10-29 12:26:02 29 4
gpt4 key购买 nike

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($next_page);
$html = '<a href="' . htmlspecialchars($next_page_url) . '">link text</a>';

关于html - 如何在 HTML 中编码 href 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10189489/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com