2014-03-18 22 views
0

我想序列化一个PHP中的数组在URL中,然后使用$ _GET获取它,但我的结果不匹配。在PHP中序列化函数

我做这样的:

$arr = array(
    'name' => 'Josh', 
    'age' => '12', 
); 

echo 'www.someurl.com/page.php?'.serialize($arr); 

然后

var_dump($_GET); 
//array(1) { ["a:2:{s:4:"name";s:4:"Josh";s:3:"age";s:2:"12";}"]=> string(0) "" } 

,但我没有得到相同的结果

var_dump($arr); 
//array(2) { ["name"]=> string(4) "Josh" ["age"]=> string(2) "12" } 

我在做什么错,或者我应该如何处理这个问题?

+0

你不明白序列化是做什么的。你想达到什么目的? json_encode()听起来像你之后,也许 – Rottingham

回答

0

$_GET是一个序列化的字符串,要么你应该unserialize,或serialize$arr

2

你要寻找的是http_build_query()。它从提供的关联(或索引)数组中生成URL编码的查询字符串。

$arr = array(
    'name' => 'Josh', 
    'age' => '12', 
); 

echo 'www.someurl.com/page.php?'.http_build_query($arr); 
// www.someurl.com/page.php?name=Josh&age=12 
+0

谢谢,根据需要工作。 –