2016-05-24 51 views
0

我有以下網址GET和filter_input在 「#」 符號停止

http://www.example.com/check.php?q=498#2D83B631%3800EBD!801600D*7E3CC13 

然後我嘗試

<?php var_dump($_GET); ?> 

<?php 
echo $my_string = filter_input(INPUT_GET, 'q', FILTER_SANITIZE_STRING); 
?> 

但他們似乎都停止「#」符號並僅顯示498。有沒有辦法檢索整個498#2D83B631%3800EBD!801600D*7E3CC13

+0

是的,因爲URL中的'#'定義了'fragment'部分開始的地方,結束了查詢部分。您需要編碼特殊字符。 –

回答

1

在服務器上,你只能得到url,直到#。如果你想要#之後的值,你需要一些客戶端腳本來獲取url。

如果這是q的值,則應首先使用urlencode()進行編碼。這樣,您將得到所有從q

您的網址應該像值:http://www.example.com/check.php?q=498%232D83B631%253800EBD!801600D * 7E3CC13

爲了解碼您可以使用urldecode()

0

碎片沒被髮送到服務器的所有URL。

https://en.wikipedia.org/wiki/Fragment_identifier

當一個代理(如Web瀏覽器)從Web服務器請求網絡資源,>該代理髮送URI到服務器,但不發送片段。

將數據作爲另一個GET參數傳遞將是一個可行的選擇。