目次
エラー演算子 関数の実行に失敗してもエラーメッセージを出力せず、$php_errormsg という名前のグローバル変数にエラーメッセージが入る
<?php $fp = @fopen("hoge.txt","w"); // これでエラーは出ない if ($php_errormsg) { echo $php_errormsg; // エラーを自分で出力 } ?>
変数の型までチェック
$banban = array("HTML", "XHTML", "XML", "XSLT", "RSS"); print($banban[1]) // XHTMLが出力される
配列の要素の出現回数を調べる
連想配列 = array_count_values(配列);
配列の末尾の要素を削除し、その要素の内容を返す
末尾の要素 = array_pop(配列);
配列の末尾に要素を追加
追加後の要素数 = array_push(配列, 追加する要素, 追加する要素, ...)
配列の先頭要素を削除し、その内容を返す
先頭の要素 = array_shift(配列);
配列の要素をランダムに取得する
srand(種となる整数) 要素のキー(配列) = array_rand(配列, [取り出す要素数])
配列から任意の要素を取り出す
取り出した要素(配列) = array_slice(配列, 取り出し開始位置, [取り出す個数]);
配列の要素を置換する
削除した要素(配列) = array_splice(配列, 削除開始位置, [削除する個数], [新しい要素(配列)]);
配列の先頭に要素を追加
追加後の要素数 = array_shift(配列, 追加する要素, 追加する要素, ...)
base_convert(変数, 変換前の基底, 変換後の基底)
CAST(id AS UNSIGNED) // id(テキスト型を数値に変換)
if(checkdate(2,28,2005)){ echo "正しい日付です"; }
配列の要素数を数える関数。sizeofでも可
count( 配列 )
文字列を暗号化する関数
crypt( 文字列 , オプション )
オプションの部分にはsaltという暗号化に使用する文字列を指定する
日付を参照するだけでなく、ローカル時間の時刻も合わせて参照することができる
$banban = explode(",", "HTML,XHTML,XML,XSLT,RSS"); print($banban[3]); // XSLTが出力される
ファイルまたはディレクトリが存在するかどうかを確認する関数
file_exists( ファイル名 )
<?php $fp = fopen("file1","w"); fputs($fp,"こんにちはファイルさん"); fputs($fp,"ファイルの2行目です"); fclose($fp); ?>
ファイルの読み出し
<?php $fi = file("file1"); ?>
$fi[0]に"こんにちはファイルさん" $fi[1]に"ファイルの2行目です"
foreach (配列 as element) { }
foreach (配列 as $key => $value) { }
$today = getdate();
連想配列を組み合わせて、現在の日付を参照
header("Location: http://www.itboost.co.jp/"); // ページの転送
header()関数を呼び出す以前には、いかなる標準出力への出力も存在してはならない
数値 = intval(変数);
変数$varがセットされているかどうか検査する。セットされていればtrue
配列のキーを取得する
キー = key(配列);
文字列のハッシュを求める関数。
md5( 文字列 )
マルチバイト対応
配列のデータを変数にセットする関数
list(変数1, 変数2, ... ) = 配列;
クエリ形式の文字列(name1=value1&name2=value2)を解析し、変数や配列にセット
parse_str(文字列, [配列]);
$str = "name=foo&text=Sample"; parse_str($str); print $name // foo print $text // Sample
データの構造のみを出力
$array = (1,2,3,4,5); print_r($array);
セッションの終了を明示
// ログアウト処理 session_start(); $_SESSION = array(); session_destroy(); header("Location: login.php");
文字列を繰り返し出力する関数
str_repeat( 繰り返し文字列 , 繰り返し回数 ) str_pad( 挿入文字列 , 長さ , 繰り返し文字列 , 挿入位置)
str_padでは挿入文字列の左右に繰り返し文字列を出力できる 挿入位置をSTR_PAD_RIGHTで右に、STR_PAD_LEFTで左に、STR_PAD_BOTHで両側に 繰り返し文字列を出力する
str_replace("置換対象の文字列","置換する文字列","最初の文字列");
文字列を検索する関数 大文字小文字を区別する。stristrは大文字小文字を区別しない 文字列が含まれているときはそれ以降の文字列を返し、含まれていないときは FALSEを返す。
strtoupperは大文字に変換、strtolowerは小文字に変換する
文字列の最初の文字だけを大文字にするにはucfirst、単語の最初の
文字だけを大文字にするにはucwordsを使う
文字列 = strval(変数);
文字列の出現回数を求める関数
substr_count( 対象文字列 , 検索文字列 )
両端の半角空白を削除する関数 左の空白のみ削除したい場合はltrim()、右の空白のみ削除したい場合はrtrim()を使う
$array = (1,2,3,4,5); var_dump($array);
// login.php $_GET['login_id'] // login_idの取得 $_GET['password'] // passwordの取得
require_once、include_oncel
requireはインクルードファイルの読み込みに失敗すると、スクリプトの実行が中止されるエラーを発生
PHP文書そのものが画像の扱いとなる
<?php header("content-type: image/png"); // 画像の描画領域 $image = imagecreate(100,100); // 描画する色の指定 $back = imagecolorallocate($image, 0, 0, 0); $red = imagecolorallocate($image, 255, 0, 0) // 三角形のような多角形を結ぶ線を生成 imagepolygon( $image, array( 10, 80, 80,80, 80, 10 ), 3, $red ); // PNG画像を Webブラウザに出力 imagepng($image); // 閲覧者のメモリから画像リソースを解放する imagedestroy($image); ?>
$now = date("Y/m/d H:i:s", time());
// php.ini session.use_cookies = 1
$_SESSION[セッション変数名] = 値;
//セッション変数の登録 if (!isset($_SESSION['login_id'])) { $_SESSION['login_id'] = $login_id; // リソースは登録できない }
<?php function is_url($text) { if (preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $text)) { return TRUE; } else { return FALSE; } } ?>
<form action="check.php"> <input type="checkbox" name="chk[]" value=""> </form>
// check.php // チェックボタンが押されているかチェック if (!isset($_POST['chk'])) { // チェックされていない }
$checkbox = $_REQUEST["chk"]; for($i=0; $i<count($checkbox); $i++) { // チェックボタンが押されいた項目だけ }
// 接続 pg_connect("host=192.168.1.31 port=5434 dbname=LoginServer user=psp password=psp") if ($dbHandle == False) { print ("can not connect DB\n"); die; }
// 実行 $sql = "select * from user_info"; if (!($userinfo = pg_exec($sql))) { die; }
// レコード取得 $ct = pg_numrows($userinfo); for ($i = 0; $i < $ct; ++$i) { $item = pg_fetch_array($userinfo, $i); print "${item['login_id']}<br>"; } //結果配列のフィールド番号に 対応する要素にデータを格納し、それに加えてフィールド名をキーとした 連想配列にも格納する。
// 切断 pg_close($dbHandle);
$a = array('abc', 'def', 'ghi'); array_push($a, 'data1', 'data2'); foreach ($a as $tmp) { print "<P>$tmp</P>\n"; }
先頭にキーワードを指定し、次にそのキーワードが出てくるまでの複数行の文字列を改行文字を含めて、1つの文字列として扱う
<?php function is_mail($text) { if (preg_match('/^[a-zA-Z0-9_\.\-]+?@[A-Za-z0-9_\.\-]+$/',$text)) { return TRUE; } else { return FALSE; } } ?>
配列の最初の要素 = reset(配列); 現在の要素の次の要素 = next(配列); 現在の要素の前の要素 = prev(配列); 配列の最後の要素 = end(配列);
<form action="login.php"> <input type="text/password/submit" name="" value=""> </form>
可変長引数の関数を作成するには、仮引数を置かない。
func_num_args() // 引数の数を取得 func_get_arg() // 引数リストの中から1つを取得 func_get_args() // 全引数のリストを配列として返す
文字列変数を、ピリオド「 . 」、あるいはプラス「 + 」などの記号で結合する
$fruit = array("Apple" => "りんご", "Orange" => "みかん", "Grape" => "ぶどう");