基本関数マニュアル - dfwLib
dfwLib グローバル関数
便利関数
function h( $text )
文字列をエスケープする。
- 記述例
$link = h( $link );
- 戻り値
エスケープされた文字列
function v($key)
phpテンプレートでビューに渡したデータを表示する。
直接表示されるので配列やオブジェクトでは使用出来ない。
Smartyテンプレートの場合は使用しない。
- 記述例
<?php v('name'); ?> // <?php echo getView( 'name' ); ?> と同様の処理となります。
- 戻り値
なし(標準出力への表示)
function setCharEnc( $charEnc )
setView関連、h関数で使用するエスケープ処理の文字コードを指定する
デフォルトの文字コードは「UTF-8」です。
モジュール内でsetView関連、h関数で使用する前に実行してください。
- 記述例
setCharCode('Shift_JIS');
setCharCode('EUC-JP');
setCharCode('UTF-8');
- 戻り値
なし
function allTrimGet()
GETデータのすべてをトリム処理します。
- 記述例
allTrimGet();
- 戻り値
なし
function allTrimPost()
POSTデータのすべてをトリム処理します。
- 記述例
allTrimPost();
- 戻り値
なし
function pearse( $line, $sep = "\t" )
指定されたセパレータで文字列を分解する。
- 記述例
$arr_str = pearse( $str );
- 戻り値
分解された文字列の配列
function makeConfigString($arr, $sep = ',')
連想配列をカンマ区切りのini記法(hoge=fuga)に変換します。
第2引数でセパレータ文字を設定できます。
- 記述例
$configString = makeConfigString( array('hoge'=>'fuga', 'test'=>20, 'papa'=>'mama') );
- 記述例結果
$configString = 'hoge=fuga,test=20,papa=mama';
- 戻り値
ini記法文字列
function parseConfigString($str, $sep = ',')
カンマ区切りのini記法(hoge=fuga)を連想配列に変換します。
第2引数でセパレータ文字を設定できます。
- 記述例
$arr = parseConfigString('hoge=fuga,test=20,papa=mama');
- 記述例結果
$arr['hoge'] = 'fuga';
$arr['test'] = '20';
$arr['papa'] = 'mama';
- 戻り値
文字列連想配列
モジュール呼び出し
function callModule()
指定したモジュールに遷移します(301リダイレクト)。
callModule命令以降の処理は行われません。
- 記述例
callModule('update'); // updateモジュールに遷移
- 記述例
callModule('update&hoeg=hogehoge&name=tatenosystem'); // CGIパラメータ付きで遷移( & で接続)
- 記述例
callModule('update/hoge1/hoge2/'); // CGIパラメータ付きで遷移(URLマッピング使用時)
- 戻り値
なし
function includeModule($moduleName)
指定したモジュールに読み込んで実行します。
include実行なので、URLは変更されません。
includeModule命令以降の処理は行われません。
- 記述例
includeModule('update'); // updateモジュールを読み込み実行
- 戻り値
なし
テンプレート関連(モジュール → ビュー)
function setTemplate( $template_name )
モジュール実行終了後表示するビューファイル名を指定する。
モジュール内で使用する。
- 記述例
setTemplate( 'login.html' ); // smartyテンプレート
- 記述例
setTemplate( 'login.php' ); // phpテンプレート
- 戻り値
なし
function setView($key,$val)
ビューに渡すデータ(文字列、配列等)を指定する。
データはエスケープされる。
モジュール内で使用する。
$val には、配列、連想配列も指定出来る。
- ビューでの取得
Smartyテンプレートの場合は、{$キー名} で値を取得できる。
phpテンプレートの場合は、getView('キー名') で値を取得できる。
- 記述例(1)
setView( 'name', 'tatenosystem' );
- 記述例(2)
$ar = array('name'=>'hoge', 'title'=>'hogehoge');
setView( 'user', $arr );
- ビューでの取得例(1)
{$name} (Smartyテンプレートの場合)
<?php echo getView('name'); ?> (phpテンプレートの場合)
- ビューでの取得例(2)
{$user.name} (Smartyテンプレートの場合)
<?php $arr = getView('name'); echo $arr['name']; ?> (phpテンプレートの場合)
- 戻り値
なし
function setViews($arr)
ビューに渡す「連想配列」を指定する。
連想配列のハッシュキー名が登録キー名となる。
データはエスケープされる。
モジュール内で使用する。
- ビューでの取得
Smartyテンプレートの場合は、{$キー名} で値を取得できる。
phpテンプレートの場合は、getView('キー名') で値を取得できる。
- 記述例
$ar = array('name'=>'hoge', 'title'=>'hogehoge');
setViews( $ar );
- ビューでの取得例
{$name} {$title} (Smartyテンプレートの場合)
<?php echo getView('name'); ?> <?php echo getView('title'); ?> (phpテンプレートの場合)
- 戻り値
なし
function setViewRaw($key,$val)
ビューに渡すデータ(文字列、配列等)を指定する。
データはエスケープされない。
モジュール内で使用する。
- ビューでの取得
Smartyテンプレートの場合は、{$キー名} で値を取得できる。
phpテンプレートの場合は、getView('キー名') で値を取得できる。
- 記述例
setViewRaw( 'name', 'tatenosystem' );
- ビューでの取得例
{$name} (Smartyテンプレートの場合)
<?php echo getView('name'); ?> (phpテンプレートの場合)
<?php v('name'); ?> (phpテンプレートの場合)
- 戻り値
なし
function getView($key)
phpテンプレートでビューに渡したデータを取得する。
Smartyテンプレートの場合は使用しない。
- 記述例
<?php echo getView( 'name' ); ?>
- 戻り値
取得したデータ
function setViewPost( $key )
Set View from Post Data
POSTデータをビューに渡す。
データはエスケープされる。
モジュール内で使用する。
- ビューでの取得
Smartyテンプレートの場合は、{$キー名} で値を取得できる。
phpテンプレートの場合は、getView('キー名') で値を取得できる。
- 記述例
setViewPost( 'comment' ); // $_POST['comment']がcommentという名前でビューに保持される
- 戻り値
なし
function setViewGet( $key )
Set View from Get Data
GETデータをビューに渡す。
データはエスケープされる。
モジュール内で使用する。
- ビューでの取得
Smartyテンプレートの場合は、{$キー名} で値を取得できる。
phpテンプレートの場合は、getView('キー名') で値を取得できる。
- 記述例
setViewGet( 'comment' ); // $_GET['comment']がcommentという名前でビューに保持される
- 戻り値
なし
セッション関連・ログイン処理関連
function startFirstSession()
「ログイン状態」にしてセッションを開始する
セッション名等の情報は設定ファイルに記述します
- 認証なしプロダクト
本関数を使用しなくても問題ありません。通常通り session_start() でセッションを開始。
- 認証ありプロダクト
認証成功後、1度だけ実行してください。
- 記述例
startFirstSession();
- 戻り値
なし
function startSession($mobule_name = __)
ログイン状態かどうかチェックする。
(startFirstSession() が実行されているかどうかチェック)
チェック成功の場合はセッションが開始します。
チェック失敗の場合は引数で指定したモジュールにリダイレクトします。
引数でモジュール指定がない場合は「403 Forbidden」となります。
- 認証なしプロダクト
本関数は使用しません。
- 認証ありプロダクト
ログインページ以外でモジュール毎に実行してください。
- 記述例
startSession(); // 認証失敗時、指定したモジュールにリダイレクト
- 記述例
startSession('def'); // 認証失敗時defモジュールにリダイレクト
- 戻り値
なし
function isLoginSession()
2010.05.18-
ログイン状態かどうかチェックする。
(startFirstSession() が実行されているかどうかチェック)
ログイン状態の場合は「真」を返します。
未ログイン状態の場合は「偽」を返します。
- 認証なしプロダクト
本関数は使用しません。
- 認証ありプロダクト
ログイン済みかどうかを評価する際に使用してください。
- 記述例
if ( isLoginSession() ) {
// ログイン状態時の処理
}
- 戻り値
ログイン状態:true(boolean)
未ログイン状態:false(boolean)
function deleteSession()
セッションを削除する。
- 記述例
deleteSession();
- 戻り値
なし
function setSession($key, $val=__)
セッションにデータ(文字列、配列等)を保持する。
makeSession() または checkSession()でセッション開始後に使用する。
valを省略するとキー名のセッションが削除される。
- 記述例
setSession( 'name', 'tatenosystem' );
- 記述例
setSession( 'name' ); // nameセッションデータを削除
- 戻り値
なし
function getSession( $k, $def=__ )
セッションのデータ(文字列、配列等)を取得する。
makeSession() または checkSession()でセッション開始後に使用する。
defを設定すると該当のセッションが無かった場合defで設定した値が取得できる。
- 記述例
$name = getSession( 'name' );
- 記述例
$name = setSession( 'name', 'ゲストさん' );
- 戻り値
指定したセッションのデータ
function setSessionPost( $key )
Set Session from Post Data
key名のPOSTデータをセッションに保持する。
makeSession() または checkSession()でセッション開始後に使用する。
モジュール内で使用する。
- 記述例
setSessionPost( 'name' ); // $_POST['name']をnameという名前でセッションに保持
- 戻り値
なし
function setSessionGet( $key )
Set Session from Get Data
key名のGETデータをセッションに保持する。
makeSession() または checkSession()でセッション開始後に使用する。
モジュール内で使用する。
- 記述例
setSessionGet( 'name' ); // $_GET['name']をnameという名前でセッションに保持
- 戻り値
なし
function setViewSession( $key )
Set View from Session Data
セッションデータをビューに渡す。
データはエスケープされる。
makeSession() または checkSession()でセッション開始後に使用する。
モジュール内で使用する。
- ビューでの取得
Smartyテンプレートの場合は、{$キー名} で値を取得できる。
phpテンプレートの場合は、getView('キー名') で値を取得できる。
- 記述例
setViewSession( 'comment' ); // $_SESSION['comment']がcommentという名前でビューに保持される
- 戻り値
なし
CSRF対策関連
function getCsrfCode()
情報送信ページで使用します。
CSRF対策コードを取得します。
取得したコードをビューに渡し、POST HIDDENデータとして設定します。
- 記述例(モジュール)
$csrfCode = getCsrfCode();
setView( 'csrfCode', $csrfCode );
- 記述例(Smartyビュー)
<form name="hoge" method="post" action="">
……
<input type="hidden" name="csrfCode" value="{$csrfCode}">
……
</form>
- 戻り値
CSRF対策コード
checkCsrf( $csrfCode, $moduleName=__ )
情報受信ページで使用します。
CSRF対策コードが正しいかチェックします。
正しくない場合は、「HTTP/1.1 403 Forbidden」となります。
正しくない場合は、モジュール名が指定されていれば指定されたモジュールにリダイレクトします。
- 記述例
checkCsrf( $_POST['csrfCode'] );
- 記述例
checkCsrf( $_POST['csrfCode'], 'top' ); // コードが不正の場合topモジュールにリダイレクト
- 戻り値
なし
バリデーション
validate( $code="", $string, $min="", $max="" )
データの妥当性をチェックします(バリデーション)。
以下のチェックを行えます。
- 正規表現チェック
- 文字長最小値
文字長最大値
記述例
if ( ! validateByte('NUMBER', $_GET['no'], 7, 7)) { /* NG処理 */ }
- 記述例
if ( ! validateByte('/^[0-9]$/', $_GET['no'])) { /* NG処理 */ }
- 記述例
if ( ! validateByte('', $_GET['no'], 3, 7)) { /* NG処理 */ }
- 戻り値
チェックOK: true(boolean)
チェックNG: false(boolean)
validateByte( $code="", $string, $min="", $max="" )
データの妥当性をチェックします(バリデーション)。
機能と引数は validate関数と同様ですが、文字長を「バイト長」で計算します。
UTF-8での全角1文字は3バイトになります。
validateByte( $code="", $string, $min="", $max="" )
データの妥当性をチェックします(バリデーション)。
機能と引数は validate関数と同様ですが、文字長を「バイト長」で計算します。
UTF-8での全角1文字は3バイトになります。
getValidateError()
validate関数で妥当性がNGとなった場合、どのチェックでエラーになったかを取得します。
ログ関連
writeLog($message, $mode = "info")
ログを出力します。
設定ファイルでログ出力を行う設定がなされている場合のみ有効です。
設定ファイルでログ出力レベルを設定することができます(debug、info、warning、error、critical)
- 記述例
writeLog('エラーメッセージ', 'debug');
writeLog('エラーメッセージ', 'info');
writeLog('エラーメッセージ', 'warning');
writeLog('エラーメッセージ', 'error');
writeLog('エラーメッセージ', 'critical');
writeLog('エラーメッセージ', 'd');
writeLog('エラーメッセージ', 'i');
writeLog('エラーメッセージ', 'w');
writeLog('エラーメッセージ', 'e');
writeLog('エラーメッセージ', 'c');
- 戻り値
ログ出力完了、ログレベルによる非出力 true(boolean)
ログ出力エラー false(boolean)