PHP リソース型 【初級編 第15回】
リソース型について
前回は NULL型について記載しました。
今回はリソース型について記載したいと思います。
リソース型の概要
リソース型とは
リソース型とは、データベースやファイルへのアクセスを保持しておくものです。
変数にデータベースやファイルなどのリソースを代入すると、
以後のそれらのへのアクセスには、代入した変数名を使用することでアクセスさせることができます。
リソース型の使い方
変数へのリソースの代入
リソース型も他の変数と同じように、=(イコール)を使用して、リソースを代入します。
下記では変数にリソースを代入してリソース型にしています。
1 2 3 4 5 | <?php $fname = fopen ( "out.txt" , "r" ); var_dump( $fname ); fclose( $fname ); ?> |
それから実際に、上記のソースコードと同じディレクトリに、 out.txt というファイルを作成します。
ブラウザから確認してみると、 resource(3) of type (stream) などの文字が表示されます。
(数字は異なるかもしれませんが)
変数はリソース型になっていることが確認できます。
以後は、$fnameを使用して、このソースコード内でファイルを
読み込んだり、書き込みをおこなったりすることができます。
リソース型を使用したファイルの読み込み
たとえば下記では、in.txtファイルを読み込んで、その内容をブラウザ上に表示しています。
1 2 3 4 5 6 | <?php $fname = fopen ( "in.txt" , "r" ); $mes = fread ( $fname , filesize ( "in.txt" )); fclose( $fname ); print $mes ; ?> |
ブラウザからアクセスすると、以下のようにファイルに書き込んだメッセージが表示されました。
リソース型を使用したファイルへの書き込み
たとえば下記では、out.txtは第3者がブラウザからアクセスするたびに write message という文字列が書きこまれます。(上書き)
この際、out.txtファイルのアクセス権は、第3者からも書き込み可能にしておく必要があります。
1 2 3 4 5 6 | <?php $mes = 'write message' ; $fname = fopen ( 'out.txt' , 'wb' ); fwrite( $fname , $mes ); fclose( $fname ); ?> |
このように変数をリソース型にすることで、リソースへのアクセスを変数名で管理することができます。
今回はここまでで、次回はいろいろな型の確認方法について記載したいと思います。