我通过此代码使用php中的标头发送数据。
$msg = array( "A", "B", "C" );
header("Location: search.php?sms=".$msg);
我的网址是:
localhost/search.php?sms=Array
如何在search.php文件中将sms数据作为数组获取
答案 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)
您可以使用serialize
和unserialize
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);