在许多应用程序中,我得到&;amp;而不是&;在URL中,因此某些链接不会;不起作用


In many applications I get & instead of & in the URL, therefore certain links don't work?

当我点击链接时,我会得到一个URL:如下所示:

adipiscing-elit.&Sort=popular

我要改成这个吗:

adipiscing-elit.&;Sort=popular

它有效。

这是浏览器或php的问题吗?是因为我在locahost工作吗?

(现在,我正在使用一个名为Vanilla的论坛软件)

HTML链接中的URL应该包含&,而不是空的&。但在您的情况下,它在生成的页面中肯定是双转义&。在您使用的软件中,url会使用htmlentitieshtmlspecialchars进行两次转义。查找所有事件并设置第四个函数参数$double_encode = false

另一个解决方法是更改php.ini设置arg_separator.input = ";&"
这将允许&意外地充当分隔符("amp"将变成一个空元素,因为URL在&;处被分解)。但是,只有在找不到bug的情况下才能这样做。

不确定你的问题是什么。URI参数的常用分隔符是&符号'&',而'&'是同一个字符的HTML/XML实体,即"&"。如果你有一个这样的URI;

adipiscing-elit.&Sort=popular

这大致转化为参数;

 adipiscing-elit = (blank)
 amp;Sort = 'popular'

这就是为什么你的URI不起作用;‘amp;Sort是参数名称,您需要它只是"Sort"。