如何从url获取php数组值?

时间:2015-11-04 10:22:10

标签: php

我通过此代码使用php中的标头发送数据。

$msg = array( "A", "B", "C" );
header("Location: search.php?sms=".$msg);

我的网址是:

localhost/search.php?sms=Array

如何在search.php文件中将sms数据作为数组获取

5 个答案:

答案 0 :(得分:2)

您可以使用PHP的http_build_query功能,如

$msg = array( "A", "B", "C" );
echo http_build_query($msg, 'sms_');

<强>输出:

sms_0=A&sms_1=B&sms_2=C

因此,最终在您的代码中使用它就像

一样
header("Location: search.php?".http_build_query($msg, 'sms_'));

或者将其存储在变量中,如

$sms = http_build_query($msg, 'sms_');
header("Location: search.php?$sms");

答案 1 :(得分:1)

您可以使用serializeunserialize PHP功能。在url中发送原始数组不是一个好习惯。

$msg = array( "A", "B", "C" );
header("Location: search.php?sms=".serialize($msg));
search.php

中的

$msg = unserialize($_GET['sms']);

您也可以使用json格式。

json encode在收到后发送json decode

$msg = array( "A", "B", "C" );
header("Location: search.php?sms=".json_encode($msg));
search.php

中的

$msg = json_decode($_GET['sms']);

答案 2 :(得分:0)

当您通过GET传递带有URL的参数时,您已将其作为数组传递。

但是,通常,我们将其作为二维数组传递。

我们可以像下面解释的三维数组一样传递它。

您可以像这样通过URL传递数组:

search.php?sms[one]=two&sms[two]=three

现在,获取$ sms的值

echo '<pre>';
print_r($_GET['sms']);
echo '</pre>';

答案 3 :(得分:0)

我使用了这段代码并且有效:

$arr = array( "A", "B", "C" );
$msg=json_encode($arr);
header("Location: search.php?sms=".$msg);

<?php 
if ($_GET['sms']!=null) {
  $array=$_GET['sms'];
  $arr=json_decode($array);
  print_r($arr) ;
}?>

答案 4 :(得分:0)

使用php implode发送数据: -

$msg = implode(',',array( "A", "B", "C" ));
header("Location: index.php?sms=".$msg);

获取数据使用php explode: -

$arr=explode(",",$_GET['sms']);
print_r($arr);