2014-08-29 77 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)