Archive for the ‘PHP’ Category

2011年04月21日に投稿

[PHP]可変関数を用いてコールバック関数を実行する

PHPは変数を関数名にして実行することができる可変関数というものがあります。
関数名を変数にして動的に関数を呼び出すことができます。文章で書いていて自分でも意味が分かりづらいので実際にサンプルコードに落とし込みます。

続きを読む

2011年04月11日に投稿

[PHP]変数がセットされているかどうかを判定する

変数がセットされているかどうかを判定するにはisset関数を使用します。isset関数は変数を引数にとり、その変数がセットされていないかNULLである場合にFALSEを返却します。空文字がセットされている場合はTRUEになるようですので注意して下さい。

例えば下記のコードはファイルにPOSTされずにアクセスされたかどうかの判定には使用できますが、空文字かどうかの判定はできませんのでフォームが空の状態で送信された場合はチェックをすり抜けてしまいます。

2011年04月08日に投稿

[PHP]指定したディレクトリのファイル一覧を取得する

特定のディレクトリに含まれているファイル一覧を取得するコードです。

3行目
ディレクトリハンドルを取得します。

6行目
readdir関数を使用してファイル名を取得します。readdir関数はファイル名を全て取得したらfalseを返しますが、false以外にも0や空文字を返す可能性があるので、falseと厳密な比較を行うべきであるとマニュアルにありました。

7行目
readdir関数が返す値には「.」と「..」が含まれます。また、ディレクトリ名も返されるので返された値がディレクトリ名でないか判別します。

2011年02月17日に投稿

[PHP]配列の中に特定の文字列が含まれているかどうかをチェックする

配列の中に特定の値が含まれるかどうかを確認するにはin_array関数を使用します。in_array関数は第一引数に検索を行う文字列を、第ニ引数に検索対象となる配列を指定します。下記にサンプルコードを示します。


上記のサンプルでも記述しましたが、部分一致では無く完全一致であるようです。第一引数に正規表現が使用できると便利なのですが、PHPマニュアルを見たところそのような記述はありませんでした。

2011年02月12日に投稿

[PHP]includeとrequireの違い

外部に用意したライブラリやファイルを読み込む時に使用するincludeとrequireですが、どちらも読み込みを行う動作は同じです。ですが読み込もうとした対象が存在しない場合に異なる動作をします。includeはwarningが表示され処理が中断されませんがrequireはfatal errorとなり、処理が中断されます。

参考
http://jp2.php.net/manual/ja/function.include.php

に投稿

[PHP]配列に格納されている全ての値を、指定した関数に引数として渡す

配列の中身それぞれに対して、ある処理を実行したい時があります。そのような時はarray_map関数を使用すると便利です。下記に示すサンプルコードは配列の中身全てを2倍して出力します。

array_map関数は第一引数に引数を渡す関数名を、第二引数に対象とする配列を指定します。上記のサンプルでは、配列arrに格納されている11、22、33という3個の数値をそれぞれ2倍して、配列$outに格納しています。第一引数には関数の名前を渡すことに注意して下さい。

実行結果

2011年01月31日に投稿

[PHP]var_dump関数の出力結果をファイルに保存する

連想配列の中身を確認する時はvar_dump関数を使用すると便利ですが、この結果をブラウザではなくファイルに出力したい場合があります。
配列をそのままファイルに書きこむとarrayとなってしまい中身を確認することができません。
そんな時はob_start関数を使用することで解決できます。連想配列をファイルに書き込みを行うサンプルコードを下記に示します。

ob.php

ob_start関数はマニュアルによると、通常ブラウザに出力される情報をバッファと呼ばれる領域に保存しあとから取り出すことができるようにする関数のようです。出力を行う前にob_start()を実行し、var_dump($arr)で配列の中身をバッファに出力します。この時点ではブラウザに出力されません。その後にバッファからデータを取り出すことができる関数のob_get_contents()を実行し、結果を$resultに保存します。$resultにはvar_dump($arr)の結果が保存されます。最後にob_end_clean()でバッファの中身を削除します。

あとは、通常通り$resultの中身をdump.txtへ書き込みます。dump.txtの中身は下記の通りです。
dump.txt

var_dump($arr)の実行結果がそのまま保存されているのが分かります。