2014-08-29 71 views
0

我有一個包含部門名稱的URL,它將從數據庫中提取記錄。PHP解碼URL

的URL看起來是這樣的:submissions.php?department=Settings,%20Security%20&%20Payments這是Settings, Security & Payments

我的查詢相當於需要從所在部門等於Settings, Security & Payments表拉記錄。

如何將該GET變量轉換回我期望的值?

我試過html_entity_decode,但它忽略了&,只給了我之前的一切。

最好的辦法是做什麼?

注意,如果這是我的數據,我會簡化它,並通過ID拉它,但我們沒有一個表的ID爲部門。

+1

該URL的嚴重構建反正。爲什麼要對空格進行編碼,然後單獨離開'&'?無論生成哪種代碼都應該修復。 – 2014-08-29 15:19:53

+0

嘗試將符號編碼到'%26'。 PHP可能會將'%20Payments'解釋爲查詢字符串中的另一個參數,因爲它遵循&符號。我敢打賭,如果你做了'print_r($ _ GET)',你會看到一個你不期望的額外參數。 – 2014-08-29 15:20:01

+0

@MarcB就是這個值是如何存儲在數據庫中的。我有一個過濾器,可以讓你按部門提取記錄,不幸的是這是部分部門的格式化。 – SBB 2014-08-29 15:21:13

回答

1
<?php 

$string = "submissions.php?department=Settings,%20Security%20&%20Payments"; 
$decoded = urldecode($string); 

echo "Original string: $string\n"; 
echo "Decoded string: $decoded\n"; 

?> 

http://codepad.org/Bq1Gt30s

2

嘗試urldecode()

您可以在這裏看到手冊。 http://uk3.php.net/urldecode

+0

「超全球變量$ _GET和$ _REQUEST已經被解碼。」它返回的結果與entity_decode相同 – SBB 2014-08-29 15:23:36

0

使用urldecode($ your_URLstring)