當我點擊我得到一個URL鏈接:是這樣的:在許多應用程序中,我獲得&而不是在URL中,因此某些鏈接不起作用?
adipiscing-elit.&Sort=popular
是我把它改成這樣:
adipiscing-elit.&;Sort=popular
它的工作原理。
這是一個瀏覽器或php的問題?是因爲我在locahost?
(現在,我使用的是被稱爲Vanilla一個論壇軟件)
當我點擊我得到一個URL鏈接:是這樣的:在許多應用程序中,我獲得&而不是在URL中,因此某些鏈接不起作用?
adipiscing-elit.&Sort=popular
是我把它改成這樣:
adipiscing-elit.&;Sort=popular
它的工作原理。
這是一個瀏覽器或php的問題?是因爲我在locahost?
(現在,我使用的是被稱爲Vanilla一個論壇軟件)
HTML鏈接中的網址應該包含&
而不是純粹的&
。但在你的情況下,它肯定是一個雙轉義&
在生成的頁面。在您使用過的軟件中的某個地方,該網址會被htmlentities
或htmlspecialchars
轉義兩次。查找所有參數並設置第四個功能參數$double_encode = false
。
另一個解決方法將改變php.ini
設置arg_separator.input = ";&"
這將使&
用作意外分隔符(「AMP」將成爲一個空元素,因爲URL是在&
和;
打散然後) 。但只有在找不到錯誤時才這樣做。
奇怪的是,如果我將這個框架上傳到一個實時主機,我不會這麼擔心。 – alexchenco
可能有一些ini設置會自動轉義您的輸出(會話處理程序重新編碼的URL)。或者這是一個參與本地主機設置的軟件的特定行爲。 – mario
不知道你的問題是什麼。 URI參數的公共定界符是&符號'&',而'&'
是同一字符的HTML/XML實體,符號'&'。如果你有這樣的URI;
adipiscing-elit.&Sort=popular
這大致轉換爲參數;
adipiscing-elit = (blank)
amp;Sort = 'popular'
這就是爲什麼你的URI不工作; 'amp; Sort'是參數名稱,您只需要'Sort'即可。
如果在您的html上打印此URL,它將顯示&而不是& – Ibu
@Ibu每次我點擊鏈接時,它都會顯示爲& not'&'。 – alexchenco