リファレンス
フレームワークから提供される命令
import()
ファイルを読み込みます。ファイルは内部的には require_once
で読み込まれますが、第2引数を false
にすると require
で読み込まれます。ファイルが見つからなければエラーになりますが、第3引数を true
にするとエラーにならずに処理を続けます。
import('app/config.php') // 「app/config.php」を読み込む
import('app/views/header.php') // 「app/views/header.php」を読み込む
import('app/views/parts.php', false) // ファイルを require で読み込む
import('app/views/parts.php', false, true) // ファイルが見つからなくてもエラーにしない
convert()
文字コードを変換します。第2引数のデフォルト引数は UTF-8
、第3引数のデフォルト引数は UTF-8,EUCJP-WIN,SJIS-WIN
です。
$converted = convert($data, 'UTF-8', 'EUCJP-WIN'); // 「EUCJP-WIN」から「UTF-8」に変換
alt()
代替文字を設定します。
$data = alt($data, '-'); // $dataがnullか空文字なら「-」が設定される
truncate()
長い文字列を省略します。省略されると ...
が付加されますが、第3引数で任意の文字列に変更できます。
$data = truncate($data, 20); // $dataが20文字以上なら省略される
$data = truncate($data, 20, '…'); // 省略時に付加される文字を「…」にする
e()
テキストを出力します。(echo()
でそのまま表示されます。)
e('テキスト') // テキストを出力
n()
改行コードを改行タグにしてテキストを出力します。(nl2br()
が適用されます。)
n('テキスト') // テキストを出力
$text = n('テキスト', true) // テキストを作成
t()
入力欄用のテキストを作成&出力します。(htmlspecialchars()
が適用されます。)
t('テキスト') // テキストを出力
$text = t('テキスト', true) // テキストを作成
h()
表示用のテキストを作成&出力します。(htmlspecialchars()
と nl2br()
が適用されます。)
h('テキスト') // テキストを出力
$html = h('テキスト', true) // テキストを作成
language()
多言語化させた文言を取得できます。(この機能はVer8.4以降で対応しています。Ver8.10で関数名が現在のものに変更されました。)
具体的な使用方法は、「多言語に対応させる」を参照してください。
localdate()
日時を取得します。
localdate() // タイムスタンプを取得
localdate('Y-m-d H:i:s') // フォーマットして取得
localdate('Y年m月d日 H時i分s秒', 1375335520) // タイムスタンプからフォーマットして取得
localdate('Y年m月d日 H時i分s秒', '2013-08-01 14:38:40') // 文字列からフォーマットして取得
この関数の時差は config.php
の MAIN_TIME
に数値を代入する、もしくは $GLOBALS['_time']
に数値を代入することで調整できます。(第二引数を指定しなかったとき。)
clientip()
アクセス元のIPアドレスを取得します。
clientip() // IPアドレスを取得
clientip(true) // プロキシを考慮してIPアドレスを取得
ssl()
SSL接続か否かを判定します。
if (ssl()) { // SSL接続か否かを判定
// SSL接続である
} else {
// SSL接続でない
}
if (ssl(true)) { // プロキシを考慮してSSL接続か否かを判定
// SSL接続である
} else {
// SSL接続でない
}
token()
ワンタイムトークンを扱います。token('create')
でトークンを発行し、フォームなどから送信し、$_REQUEST['_token']
で受信して、token('check')
で確認できます。
二重投稿防止機能としてではなく、CSRF対策として実装しています。
$token = token('create') // ワンタイムトークンを発行
$flag = token('check') // ワンタイムトークンを確認
redirect()
リダイレクトします。
redirect('http://www.example.com/sample.html') // 外部ページへリダイレクト
redirect('/message/list') // 内部ページヘリダイレクト
forward()
処理を転送します。リダイレクトとは異なり、移動の際にHTTPリクエストは発生しません。
forward('/message/post')
debug()
配列の内容を表示します。
debug(表示したい配列)
$array = debug(表示したい配列, true)
benchmark()
ベンチマークテスト用に、処理時間とメモリ使用量を表示します。DEBUG_LEVEL
が 2
のときに使用できます。(Ver8.5以降。)
benchmark()
以下のようにすると、ベントマーク表示の際に任意のラベル付きで表示されます。
benchmark('表示したいラベル')
第2引数を true
にすると、DEBUG_LEVEL
に関わらず使用できます。
logging()
ログを記録します。記録先は config.php
の LOGGING_PATH
で指定します。
logging('記録したいメッセージ')
ok()
処理完了ページ(正常終了)を表示します。画面はHTMLで表示されますが、GETかPOSTのリクエストで _type=xml
を指定するとXML形式で、_type=json
を指定するとJSON形式で表示します。(関数の第1引数で、xml
か json
を指定することもできます。)
app/views/ok.php
があるとHTML画面のビューとして使われます。
また、/test1
や /test1/test2
へのリクエストの場合、app/views/ok_test1.php
があると優先してHTML画面のビューとして使われます。
ok()
ok('json')
warning()
処理完了ページ(警告あり)を表示します。画面はHTMLで表示されますが、GETかPOSTのリクエストで _type=xml
を指定するとXML形式で、_type=json
を指定するとJSON形式で表示します。(関数の第2引数で、xml
か json
を指定することもできます。)
警告メッセージは文字列と配列のどちらでも渡すことができます。入力チェックエラーなど、問題があっても引き続きチェックを行ってまとめてエラーを表示する用途を想定しています。
app/views/warning.php
があるとHTML画面のビューとして使われ、$_view['messages']
にエラー内容が格納されます。
また、/test1
や /test1/test2
へのリクエストの場合、app/views/warning_test1.php
があると優先してHTML画面のビューとして使われます。
warning('警告メッセージ')
warning('警告メッセージ', 'json')
error()
処理完了ページ(エラーあり)を表示します。画面はHTMLで表示されますが、GETかPOSTのリクエストで _type=xml
を指定するとXML形式で、_type=json
を指定するとJSON形式で表示します。(関数の第2引数で、xml
か json
を指定することもできます。)
エラーメッセージは文字列のみ渡すことができます。不正アクセスエラーなど、問題があった時に即座に処理を停止してエラーを表示する用途を想定しています。
app/views/error.php
があるとHTML画面のビューとして使われ、$_view['message']
にエラー内容が格納されます。
また、/test1
や /test1/test2
へのリクエストの場合、app/views/error_test1.php
があると優先してHTML画面のビューとして使われます。
error('エラーメッセージ')
error('エラーメッセージ', 'json')
db_query()
データベースに命令を渡します。
$resource = db_query('SELECT * FROM members;');
db_result()
データベースから結果を受け取ります。
$resource = db_query('SELECT * FROM members;');
$results = db_result($resource);
print_r($results);
db_count()
データベースから結果件数を受け取ります。
$resource = db_query('SELECT * FROM members;');
$count = db_count($resource);
db_escape()
データベースに渡す値をエスケープします。
$string = db_escape('Whats\'s New!');
db_unescape()
エスケープした値を元に戻します。
$string = db_unescape($string);
db_placeholder()
プレースホルダを展開します。
$queries = db_placeholder(array(
'where' => array('id >= :? AND id <= :?', array(1, 10)),
));
db_error()
エラーを表示します。
echo db_error();
db_select()
テーブルからデータを取得します。モデルによって自動作成される select_xxx()
は、内部ではこの関数が呼ばれます。
$resource = db_select(array(
'select' => 'username',
'from' => 'users',
'order_by' => 'sort, id',
));
$resource = db_select(array(
'select' => 'gender, COUNT(*)',
'from' => 'users',
'where' => 'deleted IS NULL',
'group_by' => 'gender',
'having' => 'COUNT(*) > 10',
'order_by' => 'sort, id',
'offset' => '20', // PostgreSQL使用時のみ
'limit' => '100',
'option' => 'FOR UPDATE',
));
db_insert()
テーブルにデータを追加します。モデルによって自動作成される insert_xxx()
は、内部ではこの関数が呼ばれます。
db_update()
テーブルのデータを更新します。モデルによって自動作成される update_xxx()
は、内部ではこの関数が呼ばれます。
db_delete()
テーブルのデータを削除します。モデルによって自動作成される delete_xxx()
は、内部ではこの関数が呼ばれます。
db_last_insert_id()
テーブルに追加した最後のデータの主キーを取得します。
db_transaction()
トランザクションを開始します。
db_transaction()
db_commit()
トランザクションをコミットします。
db_commit()
db_rollback()
トランザクションをロールバックします。
db_rollback()
rand_number()
乱数を作成します。
$count = rand_number(); // 0以上の乱数を作成します。
$count = rand_number(5, 10); // 5以上10以下の乱数を作成します。
rand_string()
ランダムな文字列を作成します。
$string = rand_string() // 32文字位内のランダムな文字列を作成します。
$string = rand_string(5) // 5文字位内のランダムな文字列を作成します。
test_equals()
期待する値と等しいかテストします。(単体テスト用。)
test_not_equals()
期待する値と等しくないかテストします。(単体テスト用。)
test_greaterthan()
期待する値より大きかテストします。(単体テスト用。)
test_greaterthanorequal()
期待する値以上かテストします。(単体テスト用。)
test_lessthan()
期待する値より小さいかテストします。(単体テスト用。)
test_lessthanorequal()
期待する値以下かテストします。(単体テスト用。)
test_contains()
期待する値を含むかテストします。(単体テスト用。)
test_not_contains()
期待する値を含まないかテストします。(単体テスト用。)
test_regexp()
期待する値が正規表現にマッチするかテストします。(単体テスト用。)
test_not_regexp()
期待する値が正規表現にマッチしないかテストします。(単体テスト用。)
test_array_haskey()
期待する配列のキーが存在するかテストします。(単体テスト用。)
test_array_not_haskey()
期待する配列のキーが存在しないかテストします。(単体テスト用。)
test_array_subset()
期待する配列の値が存在するかテストします。(単体テスト用。)
test_array_not_subset()
期待する配列の値が存在しないかテストします。(単体テスト用。)
フレームワークから提供されるプラグイン
hash.php
ハッシュを扱う命令が提供されます。
hash_salt()
ハッシュ用のソルトを取得します。
echo hash_salt();
hash_crypt()
文字列のハッシュを取得します。
echo hash_crypt('文字列', 'ソルト');
string.php
文字列を扱う命令が提供されます。
string_autolink()
文字列内のURLをリンクします。
echo string_autolink('文字列');
file.php
ファイルを扱う命令が提供されます。
file_info()
ファイルのサイズ(幅・高さ・容量)を取得します。
list($width, $height, $size) = file_info('ファイルのパス');
file_mimetype()
ファイルのマイムタイプを取得します。
$mimetype = file_mimetype('ファイル名');
file_resize()
画像ファイルをリサイズします。
$result = file_resize('ファイルのパス', '出力先', '幅', '高さ');
file_getcsv()
CSVファイルから1行読み込みます。
$csv_data = file_getcsv('ファイルハンドル');
directory.php
ディレクトリを扱う命令が提供されます。
directory_info()
ディレクトリの容量を取得します。
$size = directory_info('ディレクトリのパス');
directory_mkdir()
ディレクトリを作成します。
$result = directory_mkdir('ディレクトリのパス', 'パーミッション');
directory_rmdir()
ディレクトリを削除します。
$result = directory_rmdir('ディレクトリのパス');
cookie.php
Cookieを扱う命令が提供されます。
cookie_set()
Cookieをセットします。
$result = cookie_set('キー', '値', '有効期限');
mail.php
メールを扱う命令が提供されます。
mail_send()
メールを送信します。
$result = mail_send('送信先アドレス', '題名', '本文', 'メールヘッダ', 'MTAへ渡すコマンドライン引数', '添付ファイル');
ui.php
ユーザーインターフェースを扱う命令が提供されます。
ui_pager()
ページャーを取得します。
$pager = ui_pager(array(
'key' => 'page', // ページ数を決定する変数
'count' => 200, // 表示しようとしているデータの件数
'size' => 10, // 1ページあたりの表示件数
'width' => 5, // ページャーの幅
'query' => '?class_id=' . $_GET['class_id'] . '&', // ページャーのリンクで引き継ぐ値
'label' => array( // 各種ラベル
'first' => '<<', // 最初のページ
'last' => '>>', // 最後のページ
'back' => '<', // 前のページ
'next' => '>', // 次のページ
),
));
ui_datetime()
日時選択の入力フォームを取得します。
$input = ui_datetime('日時やタイムスタンプ', '取得形式', 'オプション');