是否可以创建指向路径中具有双引号的页面的超链接?

时间:2014-10-31 18:05:27

标签: php html

我想创建指向我网站上网页的超链接,但页面地址中有双引号?

例如:

<a href="mysite.com/search.php?q="sales+manager"&l=usa"></a>

上面只是链接到 mysite.com/search.php?q = ,正如我所期待的那样。

API返回结果允许通过将它们放在双引号中进行短语搜索。

有没有办法在href标签内转义这些?

4 个答案:

答案 0 :(得分:1)

哟必须编码引号&amp; quot

mysite.com/search.php?q=&quot;sales+manager&quot;&l=usa

答案 1 :(得分:1)

简单解决方案:使用altenative quotes:

<a href='mysite.com/search.php?q="sales+manager"&l=usa'></a>

这样可以正常工作(浏览器会确保用户点击它时网址格式正确),但你应该真正对urlencoding特殊字符进行编码,因为有很多东西你不是允许在URL中使用,以及一些具有不同含义的东西(例如,在URL中,空格变为+,因此您无法在+中删除并在解析它时保留它。)URL magic !)。

查看urlencode并在生成链接URL服务器端时使用它。这会将空格转换为%20,将双引号转换为%22等,并将文字字符串数据从客户端发送到服务器。

答案 2 :(得分:0)

  

有没有办法在href标签内转义这些?

是的,带有转义字符。 \

虽然,代码的当前状态会产生:

<a href="example.com/search.php?q="sales+manager"&l=usa"></a>

因为你破坏了字符串而有效地破坏了href。

你想要的只是:

<a href="mysite.com/search.php?q=sales+manager&l=usa">...</a>

答案 3 :(得分:0)

您正在考虑是否需要转义字符才能在HTML中使用。 但是,您还应该考虑是否需要转义它们才能成为合理的URL。

使用您的HTML工作 <a href="mysite.com/search.php?q='sales+manager'&l=usa">
但是,'字符不能在URL中。

&#34;统一资源定位器只能包含标准ASCII字符集中的可显示字符。扩展ASCII集(128到255)中的不可显示的字符或字符是经过特殊编码的。&#34; 有关URL转义码的列表,请参阅here

也许您希望在URL的get-request中保留引号。在这种情况下,您可能需要:

<a href="mysite.com/search.php?q=%22sales+manager%22&l=usa">