0

別のファイルにリダイレクトする必要があるphpファイルがありますが、2番目のファイルに配列を渡す必要があります。これどうやってするの。

私はこれが間違っていることを知っていますが、論理的にこれに似たものが必要です。

<?php 
       $arr = array('this'=>'is', 'some'=>'stuff');
       header("someurl.php", vals=>$arr);
 ?>
4

4 に答える 4

7

使用http_build_query

header("Location: someurl.php?" . http_build_query($arr));
于 2012-04-21T16:14:04.733 に答える
6

それはあなたがヘッダーをする方法ではありません。それはする必要があります

header("Location: someurl.php?vals=$arr");

ただし、これはURLを生成するだけです

someurl.php?vals=Array

リダイレクトはその性質上、POSTを実行できないことに注意してください。その結果、新しいGETリクエストが発生します。つまり、URLでデータを渡す必要があります。URLには長さの制限があるため、非常に大きなURLを使用している場合は、ほとんどのURLが失われることがほぼ確実です。

ただし、短い場合は、次のように試すことができます。

$url = 'someurl.php?vals=' . url_encode(serialize($arr));
header("Location: $url");

そしてそれがうまくいくことを願っています。

于 2012-04-21T16:14:11.727 に答える
5

$ arrayを公開したくない場合は、PHPインビルドセッションサポートを使用する必要があります。

session_start(); // DO CALL ON TOP OF BOTH PAGES
$_SESSION['array'] = $array;
echo $_SESSION['array']; // GIVES SAME $array FOR BOTH PAGES
于 2012-04-21T16:17:36.990 に答える
3

配列をセッションまたはリクエストに保存してから取得できます。

別のリクエストの場合は、セッションで行う必要があります。

$_SESSION['myarray'] = $array_you_want_to_store;

その後。

$array_you_want_to_retrieve = $_SESSION['myaarray'];
于 2012-04-21T16:15:13.357 に答える