我有一个包含一些值的数组,比如说
arr['one'] = "one value here";
arr['two'] = "second value here";
arr['three'] = "third value here";
我这个值在页面home.php中,在页面的末尾它被重定向到page detail.php 现在我想在直接发生时将这个数组从home.php页面传递给detail.php。
我可以使用post和get方法以多少方式发送此值。如果可能的话,请告诉我如何在detail.php页面中接收和打印这些值。
非常感谢每种类型的一个例子。
答案 0 :(得分:3)
最简单的方法是使用会话将数组从一个页面存储到另一个页面:
session_start();
$_SESSION['array_to_save'] = $arr;
有关会话的更多信息:http://php.net/manual/en/function.session-start.php
如果您不想使用会话,可以在第一页中执行类似的操作
$serialized =htmlspecialchars(serialize($arr));
echo "<input type=\"hidden\" name=\"ArrayData\" value=\"$serialized\"/>";
并在另一个中检索数组数据,如下所示:
$value = unserialize($_POST['ArrayData']);
答案 1 :(得分:2)
如果您不想使用会话,则可以将该页面包含在另一个文件中。
<强> file1.php 强>
<php
$arr = array();
$arr['one'] = "one value here";
$arr['two'] = "second value here";
$arr['three'] = "third value here";
?>
<强> file2.php 强>
<?php
include "file1.php";
print_r($arr);
?>
如果数组是动态创建的,并且您希望通过GET或POST传递它,则应在服务器端形成URL并将用户重定向到HTTP URL页面而不是php文件。
类似于:
<强> file1.php 强>
<php
$arr = array();
$arr['one'] = "one value here";
$arr['two'] = "second value here";
$arr['three'] = "third value here";
$redirect = "http://yoursite.com/file2.php?".http_build_query($arr);
header( "Location: $redirect" );
?>
<强> file2.php 强>
<?php
$params = $_GET;
print_r($params['one']);
print_r($params['two']);
print_r($params['three']);
?>
答案 2 :(得分:2)
home.php文件
session_start();
if(!empty($arr)){
$_SESSION['value'] = $arr;
redirect_to("../detail.php");
}
detail.php
session_start();
if(isset($_SESSION['value'])){
foreach ($_SESSION['value'] as $arr) {
echo $arr . "<br />";
unset($_SESSION['value']);
}
}
答案 3 :(得分:0)
您也可以通过查询参数传递值。
header('Location: detail.php?' . http_build_query($arr, null, '&'));
你可以在detail.php中获取这样的数组:
// your values are in the $_GET array
echo $_GET['one']; // echoes "one value here" by your example
请注意,如果您通过GET或POST(隐藏输入字段)传递值,则用户可以轻松更改这些值。