2011-06-22 55 views
0

當我點擊我得到一個URL鏈接:是這樣的:在許多應用程序中,我獲得&而不是在URL中,因此某些鏈接不起作用?

adipiscing-elit.&Sort=popular 

是我把它改成這樣:

adipiscing-elit.&;Sort=popular 

它的工作原理。

這是一個瀏覽器或php的問題?是因爲我在locahost

(現在,我使用的是被稱爲Vanilla一個論壇軟件)

+0

如果在您的html上打印此URL,它將顯示&而不是& – Ibu

+1

@Ibu每次我點擊鏈接時,它都會顯示爲& not'&'。 – alexchenco

回答

1

HTML鏈接中的網址應該包含&而不是純粹的&。但在你的情況下,它肯定是一個雙轉義&在生成的頁面。在您使用過的軟件中的某個地方,該網址會被htmlentitieshtmlspecialchars轉義兩次。查找所有參數並設置第四個功能參數$double_encode = false

另一個解決方法將改變php.ini設置arg_separator.input = ";&"
這將使&用作意外分隔符(「AMP」將成爲一個空元素,因爲URL是在&;打散然後) 。但只有在找不到錯誤時才這樣做。

+0

奇怪的是,如果我將這個框架上傳到一個實時主機,我不會這麼擔心。 – alexchenco

+1

可能有一些ini設置會自動轉義您的輸出(會話處理程序重新編碼的URL)。或者這是一個參與本地主機設置的軟件的特定行爲。 – mario

0

不知道你的問題是什麼。 URI參數的公共定界符是&符號'&',而'&'是同一字符的HTML/XML實體,符號'&'。如果你有這樣的URI;

adipiscing-elit.&Sort=popular 

這大致轉換爲參數;

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

這就是爲什麼你的URI不工作; 'amp; Sort'是參數名稱,您只需要'Sort'即可。

相關問題