Smarty互換の修飾子を指定して出力します。
修飾子は左方から右方の順で実行されます。
echo(argument|opt1|opt2|opt3|...)
argument : 出力する文字列
opt1 : 修飾子1
opt2 : 修飾子2
opt3 : 修飾子3
:
:
このタグは、argument に対し opt1,opt2,opt3...の順で指定された修飾を行って出力します。
英小文字を大文字に変換します。
strtoupper(argument)を行います。
英大文字を小文字に変換します。
strtolower(argument)を行います。
HTMLタグを取り除きます。
strip_tags(argument) を行います。
改行コードを<br />に置き換えます。
nl2br(argument)を行います。
特殊文字を HTML エンティティに変換します。
htmlspecialchars(argument)を行います。
適用可能な文字を全て HTML エンティティに変換します。
htmlentities(argument)を行います。
文字列をURLエンコードします。
urlencode(argument)を行います。
文字列をURLデコードします。
urldecode(argument)を行います。
RFC1738に基づきURLエンコードを行います。
rawurlencode(argument)を行います。
RFC1738に基づきURLデコードを行います。
rawurldecode(argument)を行います。
RFC1738に基づきURLエンコードを行い、スラッシュ'/'を'%02F'に置き換えます。
str_replace('%2F','/',rawurlencode(argument))を行います。
クォート文字に対してクォート処理を行います。
preg_replace(¥"%(?<!¥¥¥¥¥¥¥¥)'%¥", ¥"¥¥¥¥'¥", argument)を行います。
JavaScript記述に対してクォート処理を行います。
strtr(argument, array('¥¥'=>'¥¥¥¥',¥"'¥"=>¥"¥¥'¥",'¥"'=>'¥¥¥"',¥"¥r¥"=>'¥¥r',¥"¥n¥"=>'¥¥n','</'=>'<¥/'))を行います。
メールアドレスクローラ対策にメール記号のアット'@'とドット'.'を違う文字列に置き換えます。
str_replace(array('@', '.'),array(' [AT] ', ' [DOT] '), argument)を行います。
置き換える [AT]と[DOT]はskinnyの設定で変更可能です。
文字列中の半角スペースを に置き換えます。
str_replace(' ',' ',argument)を行います。
数値文字列を3桁区切りのカンマ表記に変換します。
number_format(argument)を行います。
文字列中のURLをリンクに変更します。
preg_replace(¥'/(https?)(:¥¥/¥¥/[-_.!~*¥¥¥'()a-zA-Z0-9;¥¥/?:¥¥@&=+¥¥$,%#]+)/¥', ¥'<a href="¥¥¥¥1¥¥¥¥2">¥¥¥¥1¥¥¥¥2</a>¥','.$string.')を行います。
文字列中のダブルクォーテーションをエンティティに変換します。
str_replace('\"', '"', argument)を行います。
文字列反転します。この処理はマルチバイトにも対応しています。
指定した幅で文字列を丸めます。
mb_strimwidth(argument, start, length)を行います。
文字列の一部を取得します。
lengthを省略すると文字列の最後までを取得します。
mb_substr(argument, start, length)を行います。
バイト単位で文字列の一部を取得します。
substrと違いマルチバイト文字の途中を指定した場合は、その文字の先頭バイトから取得されます。
mb_strcut(argument, start, length)を行います。
指定した変換オプションに従って文字列を変換します。
modetypeはシングルクォートで囲ってください。
mb_convert_kana(argument, 'modetype')を行います。
modetypeについてはPHPマニュアルの mb_convert_kana の項を参照してください。
指定したフォーマットに従った日付文字列に変換します。
echoで与えたargumentが数値の場合はunixtime値として扱い、そうでなければstrtotimeを通した結果の値を使用します。
date('format',argument) もしくは date('format',strtotime(argument)) を行います。
argument文字列の一部を取得します。
argumentをタイムスタンプとした曜日を「日月火水木金土」のいずれか漢字1字に変換します。
echoで与えたargumentが数値の場合はunixtime値として扱い、そうでなければstrtotimeを通した結果の値を使用します。
<?php include_once( "Skinny.php" ); $out = array(); $out['message'] = "吾輩はPHPである。\n名前は「PHP:Hypertext Preprocessor」である。\n"; $Skinny->SkinnyDisplay( "echo_sample.html", $out ); ?>
<% echo(message) %> <hr /> <% echo(message|kana['C']|nl2br) %> <hr /> <% echo(message|substr[15,26]|toupper) %>
吾輩はPHPである。 名前は「PHP:Hypertext Preprocessor」である。 <hr /> 吾輩ハPHPデアル。<br /> 名前ハ「PHP:Hypertext Preprocessor」デアル。<br /> <hr /> PHP:HYPERTEXT PREPROCESSOR
吾輩はPHPである。 名前は「PHP:Hypertext Preprocessor」である。
echoタグで連想配列の要素にアクセスするにはeachのループを回すしかありませんでした。
v0.3.0以降は、特定の多次元連想配列にアクセスするための @指定子 が実装されました。
下記のようにパラメータ先頭に@を付ける事でループせず要素にアクセスする事が出来ます。
※)$out['sessiondata'] = $_SESSION; とかcookieとかで使えるかも。
// echo $var['sessiondata']['sales']['payment']; と同義です 今月の利用額は「<% echo(@sessiondata/sales/payment) %>円」です。
echoタグの短縮書式が実装されました。Skinnyタグの%を2重にします。
上記サンプルのテンプレートは下記のように書くことが出来ます。
エディタのハイライト指定で処理タグと表示タグで区別させたい場合には便利です。
<%% (message) %%> <hr /> <%% (message|kana['C']|nl2br) %%> <hr /> <%% (message|substr[15,26]|toupper) %%>