メインコンテンツまでスキップ

KurocoのSmartyで利用可能なPHP関数

カスタム処理やバッチ処理にてSmartyプラグイン利用できます。 変数の修飾子として利用可能なPHP関数をまとめます。

利用可能なPHP関数

if ステートメント

Kuroco のSmarty利用箇所において、{if} ステートメントで使用できる PHP 関数は以下の通りです。

PHP関数名概要
is_null変数が null かどうか調べます
count配列または Countable オブジェクトに含まれるすべての要素の数を数えます
is_array変数が配列かどうかを検査します
in_array配列に値があるかチェックします
isset変数が宣言されていること、そして null とは異なることを検査します
is_object変数がオブジェクトかどうかを検査します

記載例

{if is_null($hoge)}
$hogeはnullです。
{/if}

修飾子

Kuroco のSmarty利用箇所において、変数の修飾子として使用できる PHP 関数は以下の通りです。

PHP関数名概要
array_column入力配列から単一のカラムの値を返します
array_key_exists指定したキーまたは添字が配列にあるかどうかを調べます
array_keys配列のキーすべて、あるいはその一部を返します
array_mergeひとつまたは複数の配列をマージします
array_pop配列の末尾から要素を取り除きます
array_push一つ以上の要素を配列の最後に追加します
array_reverse要素を逆順にした配列を返します
array_shift配列の先頭から要素を一つ取り出します
array_slice配列の一部を展開します
array_unique配列から重複した値を削除します
array_values配列の全ての値を返します
arsort連想キーと要素との関係を維持しつつ配列を降順にソートします
asort連想キーと要素との関係を維持しつつ配列を昇順にソートします
base64_decodeMIME base64 方式によりエンコードされたデータをデコードします
base64_encodeMIME base64 方式でデータをエンコードします
explode文字列を文字列により分割します
filter_var指定したフィルタでデータをフィルタリングします
floor端数の切り捨て
html_entity_decodeHTML エンティティを対応する文字に変換します
htmlspecialchars_decode特殊な HTML エンティティを文字に戻します
http_build_queryURL エンコードされたクエリ文字列を生成します
implode配列要素を文字列により連結します
intval変数の整数としての値を取得します
is_array変数が配列かどうかを検査します
is_numeric変数が数字または数値形式の文字列であるかを調べます
json_decodeJSON 文字列をデコードします
json_encode値を JSON 形式にして返します
key配列からキーを取り出します
krsort配列をキーで降順にソートします
ksort配列をキーで昇順にソートします
max最大値を返します
mb_convert_encodingある文字エンコーディングの文字列を、別の文字エンコーディングに変換します
mb_convert_kanaカナを("全角かな"、"半角かな"等に)変換します
mb_strimwidth指定した幅で文字列を丸めます
mb_stripos大文字小文字を区別せず、 文字列の中で指定した文字列が最初に現れる位置を探します
mb_strlen文字列の長さを得ます
mb_strpos文字列の中に指定した文字列が最初に現れる位置を見つけます
mb_strwidth文字列の幅を返します
mb_substr文字列の一部を得ます
md5文字列のmd5ハッシュ値を計算します
min最小値を返します
mt_randメルセンヌ・ツイスター乱数生成器を介して乱数値を生成します
nl2br改行文字の前に HTML の改行タグを挿入します
number_format数字を千の位毎にグループ化してフォーマットします
parse_urlURL を解釈し、その構成要素を返します
pathinfoファイルパスに関する情報を返します
property_existsオブジェクトもしくはクラスにプロパティが存在するかどうかを調べます
rangeある範囲の整数を有する配列を作成します
rawurldecodeURL エンコードされた文字列をデコードします
round浮動小数点数を丸めます
rsort配列を降順にソートします
shuffle配列をシャッフルします
sort配列を昇順にソートします
str_pad文字列を固定長の他の文字列で埋めます
strip_tags文字列から HTML および PHP タグを取り除きます
stripos大文字小文字を区別せずに文字列が最初に現れる位置を探します
strlen文字列の長さを得ます
strpos文字列内の部分文字列が最初に現れる場所を見つけます
strstr文字列が最初に現れる位置を見つけます
strtolower文字列を小文字にします
strtotime英文形式の日付を Unix タイムスタンプに変換します
strtoupper文字列を大文字にします
strval変数の文字列としての値を取得します
substr文字列の一部分を返します
trim文字列の先頭および末尾にあるホワイトスペースを取り除きます
unset指定した変数の割当を解除します
urlencode文字列を URL エンコードします
  • 関数の第一引数を変数とし、修飾子として関数名を指定します。第二引数以上の引数は修飾子の後ろにコロン(:)区切りで記載してください。
  • 変数が配列の場合は、関数名の先頭にアットマーク(@)を記載してください。
  • 関数に利用するPHPデフォルト定数はKurocoで利用可能な定数一覧を参照してください。

記載例 (array_column の場合)

{* データベースから返ってきたレコードセットの例 *}
{assign_array var="records" values=""}

{assign_array var="record" values=""}
{append var="record" index="id" value=2135}
{append var="record" index="first_name" value="John"}
{append var="record" index="last_name" value="Doe"}
{append var="records" value=$record}

{assign_array var="record" values=""}
{append var="record" index="id" value=3245}
{append var="record" index="first_name" value="Sally"}
{append var="record" index="last_name" value="Smith"}
{append var="records" value=$record}

{assign_array var="record" values=""}
{append var="record" index="id" value=5342}
{append var="record" index="first_name" value="Jane"}
{append var="record" index="last_name" value="Jones"}
{append var="records" value=$record}

{assign_array var="record" values=""}
{append var="record" index="id" value=5623}
{append var="record" index="first_name" value="Peter"}
{append var="record" index="last_name" value="Doe"}
{append var="records" value=$record}

{* 関数の第一引数を変数とし、修飾子として関数名を指定します。第二引数以上の引数は修飾子の後ろにコロン(`:`)区切りで記載します *}
{* 変数が配列の場合は、関数名の先頭にアットマーク(`@`)を記載します *}
{assign var="first_names" value=$records|@array_column:'first_name'}

{$first_names|@debug_print_var}

実行結果

Array (4)
0 => "John"
1 => "Sally"
2 => "Jane"
3 => "Peter"

記載例 (str_pad の場合)

{assign var=input value="Alien"}
{assign var=output value=$input|str_pad:10:"_":$smarty.const.STR_PAD_BOTH}

{$input|debug_print_var}
{$output|debug_print_var}

実行結果

"Alien"
"__Alien___"

サポート

お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。