PHPでセッションに値を格納する方法を練習中です。セッションに保存した後にphpリソースIDが変更されました
問題があることである:私は私のtestsession.phpでecho $_SESSION['handle']
を呼び出すとき、私はvar_dump($_SESSION['handle'])
を使用する場合
は、それが0
を示し、それはintは(0)することを示しています。
storeValueParctice.php
$handle = fopen ("test.txt", "r");
$_SESSION['handle']=$handle;
echo $_SESSION['handle'] // it will show resource id#(somenumber)
testsession.php
echo $_SESSION['handle']; //it shows 0.
var_dump($_SESSION['handle']);//it shows that int(0).
fseek ($_SESSION['handle'], 0); // this will give me an error which is
//Warning: fseek() expects parameter 1 to be resource, integer given .
私はこれが起こらない理由を確認していません。
testsession.php
にリソースID番号を取得するにはどうすればよいですか?
$_SESSION['handle']
をstoreValueParctice.php
からtestsession.php
に渡して、testsession.php
にいくつかのファイル操作を行いたいとします。
これはあなたのためにはうまくいきません。ファイルハンドルのスコープは現在のプロセスであり、スクリプトが終了すると終了します。私はこのメソッドの別のプロセスに開いているファイルハンドルを渡すことが可能だとは思わない。 –
ファイルリソース参照をセッションに保存してから別のインスタンスで再利用することはできません。セッション中のファイルを操作したい場合は、ファイルの名前( '$ _SESSION ['handle']'の代わりに '$ _SESSION ['file_name']')を保存し、必要に応じてそのファイルを再度開きますもう一度。 –