PHP忘備録

Pocket

フォームの基礎知識

PHPにおいてユーザーからの入力を受け取るにはHTMLの「フォーム」を用いる。

フォームには様々な種類の部品があるが、共通する書き方は以下の通りである。

フォームに入力されたデータはhttpプロトコルで送信される。httpプロトコルとはサーバーとクライアントが相互に通信を行う仕組みである。

クライアントからサーバーへの通信をリクエストと呼ぶ。その逆をレスポンスと呼ぶ。リクエストが発生するとリクエストヘッダ、リクエストボディと呼ばれる2つのデータがサーバーへ送信される。

※method属性の設定値をpostではなくgetとすることも多い。postかgetかは通信方式(リクエスト方式)の違いである。postを設定した場合、そのリクエストはリクエストボディに格納されて送信される。getを選択した場合、そのリクエストはURLに付加される形で送信される。

※action属性にはフォームの送信先ファイルのパスを記述する。これを省略した場合自分自身にフォームのデータを送信することになる。

テキストボックスからリクエストを送るサンプルプログラム

文字列の出力と連結

変数の展開/文字列の連結

ヒアドキュメント

ヒアドキュメントは長い文章等を扱うのに便利である。文法は<<<終端IDと書き、ヒアドキュメントの終了時には終端ID;と書く。終了時の終端IDにインデントやスペースを加えてはならない。

終端IDは自由に定義できるが、一般的には、EOFやEOLが多く用いられる。

尚、ヒアドキュメント中の変数は展開される。

ヒアドキュメントのサンプルプログラム

【実行結果】

Nowdoc構文

一方、PHP5.3以降ではヒアドキュメントとよく似たNowdoc構文を利用することができる。Nowdoc構文の場合、変数の展開は行われない。またエスケープ文字も展開されない。Nowdoc構文の文法は最初の終端IDをシングルクォーテーションで囲むというものである。

Nowdoc構文のサンプルプログラム

【実行結果】

PHPにおける関数の定義方法

PHPにおける関数の定義にはfunctionキーワードを用いる。引数、戻り値は省略可である。引数指定において型指定は不要である。複数の引数を指定する場合はカンマで区切る。関数名は大文字・小文字を区別しない点に注意したい。

引数のデフォルト値はfunction double($num = 100)のように指定する。

引数に変数を渡した場合、変数の値がコピーされて渡される。

尚、引数には配列変数も指定できる。

ファイル処理と文字列操作

ファイル操作は①fopen()でファイルを開く、②flock()でファイルをロックする、③読み込み/書き込み、④ロック解除、⑤閉じる、という順序で実施する。

【ファイルポインタの位置】

読み込みの場合⇨先頭とは限らない。

書き込みの場合⇨w,w+,r+,x,x+,c,c+の場合は先頭。上書きモード。a,a+ではファイルの終端。追記モード。

Amazonスポンサードリンク