../../image/benilogo.gifPHP4 について


PHP の 配列の受渡しについて。

 PHPのマニュアル base64_decode( ) と base64_encode()
unserialize と serialize
php_01/array_test/ar01.php
<HTML>
<HEAD>
<TITLE>array TEST</TITLE>
</HEAD>
<META http-equiv="Content-Type" CONTENT = "text/html;charset=x-euc-jp">

<BODY>
<?php
// 引数
if (! is_array($arr)){
   $arr = unserialize(base64_decode($arr));   //引数を復元
}
//
// ---- 配列を作る。
//
if (! is_array($arr))
  $arr = array("test" => 00,"abc" => 99);
//$tt2 = base64_encode(serialize($arr));    //配列を文字列にする。
$dm1 = $dm1 + 1;                          //カウンタを進める。

echo <<<EOT

<FORM ACTION=$PHP_SELF METHOD="get" >
  日本語<BR>
<TABLE border="1">
  <TR>
    <TH>F1</TH>
    <TH>F2</TH>
    <TH>dm1</TH></TR>
  <TR>
    <TD><INPUT name="f1" size="20" value="$f1"></TD>
    <TD><INPUT name="f2" size="20" value="$f2"></TD>
    <TD>$dm1</TD></TR>
</TABLE>
<INPUT type="submit" name="button">
<INPUT type="reset" value="リセット"><BR>
<INPUT type="hidden" name="dm1" value=$dm1>
<BR>
EOT;
if (! is_null($f1)){
  $arr["$f1"] = $f2;
  $tt2 = base64_encode(serialize($arr));    //配列を文字列にする。
}
echo "<INPUT type=\"hidden\" name=\"arr\" value=$tt2>";
echo "<PRE>\n";
print_r($arr);
//print_r($tt2);
echo "</PRE>\n";
?>
</FORM>
</BODY>
</HTML>

 配列データーの php 間の受渡し。








 受渡し配列が 配列データーでない
 $arr を 復元する。 




 でも$arr は配列ではない。
 元の配列を作成する。













 f1,f2 の入力








 f1に文字が入っていれば
 f1を key として連想配列を追加する。
 この配列を受渡しのため serialize して
 base64_encode する。$tt2 
  これを 隠しフィールドarr に設定




実行結果

  • 初期画面
  • ここで f1 を key として f2 に データーを入力する。
  • f1 = arr f2 = japan
  • として配列に追加されている。

$tt2 = base64_encode(serialize($arr)); これで配列データーを送信できるようにする。
$arr = unserialize(base64_decode($arr)); 送られてきたデーターを配列に復元する。

注意(マニュアル)
Base64でエンコードされたデータは、エンコード前のデータにくらべて 33%余計に容量が必要です。





















目次に戻る

2005/05/11start ********* Last Update 2006/11/11 17:32 JST

(C) Y.Kondou,2005,2006 All Rights, Reserved.
その他、お気づきの点がありましたら連絡先はこちらから