2007-10-30

40行で作るPerlテンプレートエンジン

60行で作るPHP用テンプレートエンジン

やってしまった・・・。

方針:

  • PHPのように<?php・・・?>が無いのでそのまま表示と(foreach|if|unless)に対応。
  • [% $c{title} %]で普通に表示(TTっぽい?)
  • [# $c{title} #]でHTMLエスケープ表示

package SixtyLinesTemplate;

use strict;
use warnings;
our $VERSION = '0.01';

sub convert {
    return unless defined(my $str = shift);
    $str =~ s{&}{&}gso;
    $str =~ s{<}{&lt;}gso;
    $str =~ s{>}{&gt;}gso;
    $str =~ s{\"}{&quot;}gso;
    $str;
}

sub include_template {
    my $tmpl = shift;
    my %c = %{+shift};
    eval convert_template($tmpl);
    die $@ if $@;
}

sub convert_template {
    my $tmpl = shift;
    my $cache = $tmpl.'.cache';
    return scalar do { open my ($FH) , $cache; local $/; <$FH> }
        if ( -f $cache &amp;&amp; (stat($tmpl))[9] <= (stat($cache))[9] );
    my $out = do { open my ($FH) , $tmpl; local $/; <$FH> };
    $out =~ tr/()/\x28\x29/;
    $out =~ s/\[%\s*(foreach|if|unless|end)\s*(.+?)\s*{?\s*%\]/");".(lc($1) eq 'end' ? '} print q(' : "$1 $2 { print q(")/ige;
    $out =~ s/\[%(.+?)%\]/);print $1; print q(/g;
    $out =~ s/\[#(.+?)#\]/);print SixtyLinesTemplate::convert($1); print q(/g;
    $out = 'print q('.$out.');';
    open my ($FH) , '>' , $cache;
    print $FH $out;
    $out;
}

1;

サンプルコード


use SixtyLinesTemplate;

my $context = {
    'title' => 'Example',
    'list'  => [10,'<A&amp;B>']
};

SixtyLinesTemplate::include_template('template.tmpl',$context);

サンプルテンプレート


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head&gt;
    <title>[# $c{title} #]</title>
  </head&gt;
  <body>
    <h1>[# $c{title} #]</h1>
    <table>
[% foreach my $i (0..@{$c{list}}-1) %]
      <tr bgcolor="[% $i % 2 ? '#FFCCCC' : '#CCCCFF' %]">
        <td&gt;[% $i %]</td&gt;
        <td&gt;[# $c{list}[$i] #]</td&gt;
      </tr>
[% end %]
    </table>
  </body>
</html>

出力例:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>Example</title>
  </head>
  <body>
    <h1>Example</h1>
    <table>

      <tr bgcolor="#CCCCFF">
        <td>0</td>
        <td>10</td>
      </tr>

      <tr bgcolor="#FFCCCC">
        <td>1</td>
        <td>&lt;A&amp;amp;B&gt;</td>
      </tr>

    </table>
  </body>
</html>

foreachんところが汚く見えるかもしれませんが、あれは添え字を取ろうとするとああなるんでご勘弁を。

普通ループするだけならforeach my $item (@$c{title}) でいけますゆえ。

あと存在しない変数とか使うと死んだり警告でたりするのでevalの前にno strictとno warningsをやった方がいいかもねぇ。

って何まじめに検証してんだ俺・・・orz

追記:

SixtyじゃなくてFortyだね。恥ずかし!

追追記:

danさんに添削頂いたYO!

でも&amp;の奴はちゃんと書いてるんだけども投稿すると勝手エスケープされてしまってるんだよね。何でだろ?

ちなみにこのconvertの処理はCGI::Utilから拝借しました。

トラックバック - http://anond.hatelabo.jp/20071030153111
  • 60行テンプレートエンジンがパワーアップしてレイアウト機能に対応

    前の60行テンプレートエンジンを改良して、レイアウトテンプレート機能を追加してみた(それでも全部で90行)。 レイアウトテンプレート機能とは、例えば個別のテンプレートが&lt;tabl...

    • 60行で作るPHP用テンプレートエンジン

      唐突に、PHP用のテンプレートエンジンを作ってみる。 方針: ふつうのPHPファイルをテンプレートとして使う。 &lt;?php echo $var; ?&gt; は面倒なので #{$var} と書けるようにする。 &lt;?php e...

      • 40行で作るPerl用テンプレートエンジン

        60行で作るPHP用テンプレートエンジン やってしまった・・・。 方針: PHPのように<?php・・・?>が無いのでそのまま表示と(foreach|if|unless)に対応。 [% $c{title} %]で普通に表示(TTっぽい?...

        • perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン

          久々の勝手に添削。今回はこちら。40行で作るPerl用テンプレートエンジン正規表現がらみなので、Perl User以外も有用。

        • 0行で作るPerl用テンプレートエンジン

          60行で作るPHP用テンプレートエンジン http://anond.hatelabo.jp/20071030034313 40行で作るPerl用テンプレートエンジン http://anond.hatelabo.jp/20071030153111 404 Blog Not Found:perl - 勝手に添削 - 40行で作るPerl用テ...

        • プログラ増田のあなぐら

          40行で作るPerl用テンプレートエンジン PerlのClass::Data::Inheritableの解析 [perl]「,」と「=&gt;」の違いについて [perl]内部的に数値か文字かを判別する Shift_JISにおける危険な文字まとめ [perl...

          • [perl]「,」と「=&gt;」の違いについて

            結論→一緒。 すまん嘘。 ほぼ同じ意味だって言いたかったの。カンマもイコールダイナリもほとんど同じ感覚で使用できる。 唯一つ違うのはイコールダイナリの左辺に置いた文字列は...

          • [perl]内部的に数値か文字かを判別する

            どうーでもいいーですよー。 どうでもいい話ー、聞いてください。 Perlというやつは一応内部的には数値か文字列かをちゃんと分けて変数の管理をしているのです。 でわ、現在ある変...

          • Shift_JISにおける危険な文字まとめ

            今時Shift_JISでプログラミングするバカな奴はいないだろうけど折角まとめたので公開 2バイト目がアスキーコードど丸被りしているものを列挙する @ [ \ ] ^ _ ` { &#124; }...

            • [セキュリティ]今日は増田的情報セキュリティの日

              私は単なる一増田でしかないのだが、なんとなく今日を増田的情報セキュリティの日とすることに決めた。 なぜって、今日は、年末年始という忙しく、そして狙われやすい時期をはさみ...

            • [UTF8][EUC-JP][Shift_JIS]

              Shift_JISにおける危険な文字まとめ 携帯サイトをUTF-8で出力するかShift_JISで出力するか - F.Ko-Jiの「一秒後は未来」

          • [perl]autobox::Unix

            autoboxが流行ってるのになんで誰もコレを作らないのか不思議遊戯 package autobox::Unix;sub SCALAR::rm { my $dir = shift; my $option = shift; `rm $option $dir`;}# etc・・・use autobox;use autobox::Core;use autobox...

          • [PHP]PHPでPerlのqwを実現するお!

            function qw ($str) { return preg_split(&#39;/&#92;s+/&#39;,$str,-1,PREG_SPLIT_NO_EMPTY);}$data = qw(&#39; hoge muge dae&#39;);print_r($data); にゃろめ。 プログラ増田のあなぐら

          • [ruby]rubyでNabeAtzz

            そろそろ FizzBuzz に飽きた - にぽたん研究所 NabeAtzzが空前のブームということで俺もRubyで書いてみた。 list = %W/さん ろく きゅう じゅうに じゅうさん じゅうご じゅうはち にじゅういち ...

          • 敬意を払おう

            フレームワークとか使ってるともはや隠蔽されすぎて自分で実装しようなんて思わないのが普通である。 ましてや車輪の再開発などもってのほか、バグを生み出す温床にしかならない。 ...

            • http://anond.hatelabo.jp/20160323090449

              ブコメの。 さそりアーマーに殺される夢を見た増田 俺はさそりアーマーに殺される夢を見たな 80年代女性アイドル論の増田 マスダ80年代女性アイドル論~総論 おまえは今まで食っ...

          • PerlのClass::Data::Inheritableの解析

            唐突にClass::Data::Inheritableのソースコードについて説明してやんよ。 使い方とかの説明はこの辺でも読んでから出直して来い、ごるぁ! まぁとりあえずソース見てみろ、下記にはっつけ...

          • 4Uの画像が美しすぎてPerlでプログラム組んでみた

            4Uって知ってるかい? http://4u.straightline.jp/ ”世界中の美女画像を皆でシェアするソーシャルイメージブックマークサービス” とのことさ。それはほんともう美しい画像が満載で毎日見...

            • http://anond.hatelabo.jp/20080821224627

              これのおかげで画像ファイルがとうとう8,000個(1GB!)を超えてしまい、どうしたものかと思っていたところ、いいものを発見。 Vredefort(フレデフォート) いわゆるデジタルフォトフレーム。SON...

              • http://anond.hatelabo.jp/20080821224627

                おー、使ってくれてる奇特な奴がいるとはうれしいねぇ。 感謝の気持ちを込めて実はアレから少しバージョンアップしてるのでそれを公開しますよ! 改善点は2点。 終了判定の変更 ...

                • http://anond.hatelabo.jp/20080822142610

                  バージョンアップ、キタ━━━━━━(゜∀゜)━━━━━━ !!!!! [明日ためす]

                • http://anond.hatelabo.jp/20080822142610

                  スーパーpre記法がアレなまま直ってないわけで。 姉妹サイト(?)ができていたわけで。 なにやらcookieを食べようとした形跡があるわけで。 #!/usr/local/bin/perl -wuse strict;use warnings;use Web::Scraper...

          • [perl][Moose]Moose?Mooseってなんだ?あれか?整髪料か?え?Perl?

            最近Perl界隈ではMoose、MooseってなんかMooseってのが流行ってるらしい。 もう完全に出遅れてしまったので増田で書き殴ってみる。 自分自身のブログでは、さもずっと前からMoose知ってた...

          • [perl]もういつでもどこでもだれでもMooseでいいじゃねぇか

            おれはもうMooseしかつかわねぇ。後にも先にもMooseMooseMooseMooseMoose!!!!!!!!!!!1111111 ってな人の為にいつでもどこでもMooseする。automooseを実装しますた。 package automoose;use stric...

          • うんコード

            例えば下記の擬似コード i = 1; while( i &#38; 7 ) { i++; } 勘弁して。いや、わかるよ。言いたいことはさ。でも俺こういう書き方慣れてないから脳内で素早く2進数変換できないの。 いや単...

          • 増田でリンク名付きでURL張ると化けるので

            つまり下記のような書き方をした場合の話 [http://anond.hatelabo.jp/0000000:title=あああテスト] キーワードがリンクされてしまってうまくリンク名として認識されない。 詳しくはこの記事を読...

          • PHPの比較の素晴らしさ加減は正常

            if ("0x0A" == "10") { print '(´ε` )チュッ';} チュッ。されちゃいます。 文字列であっても整数と解釈できる文字列の場合は勝手に型変換しやがる今世紀最大の愚行を犯してしまうっての...

            • http://anond.hatelabo.jp/20090617130518

              興味深い。できたらblogでやってほしいところ。 増田だと流れちまうからなあ。

            • http://anond.hatelabo.jp/20090617130518

              プログラミングのこういう細かいところが死ぬほど嫌い。発狂するほど嫌い。 文字コードとかマジクソが死ねよって感じ。 こういうののせいでいつまでたってもプログラミングが好きに...

              • http://anond.hatelabo.jp/20090617132348

                PHPみたいな糞とまともなプログラミング言語を一緒にするなよw 文字コードについては言語レベルではどうにもならんことはあるが、他の言語での扱いは少なくともPHPよりは楽。 バッド...

                • http://anond.hatelabo.jp/20090617140839

                  PHPに限らず、CとかC++もめんどくせーこと多くて嫌いなんだよ…。 あ、C/C++もまともな言語じゃないっすか。そうっすか…。

                  • http://anond.hatelabo.jp/20090617144121

                    C/C++はあくまでもCPU依存性を減らしたアセンブラであって、面倒くささを耐える代わりに速度を稼ぐという特殊用途言語なんだから、「プログラミングは面倒だ」というには局所的すぎる...

                    • http://anond.hatelabo.jp/20090617212621

                      バッドノウハウ…! これですよ。こういうのがマジウザい。 何がバッドノウハウだよただ仕様が終わってるだけじゃねーかカスが!って思う。 ああいうクソ仕様素晴らしい仕様をいか...

                      • http://anond.hatelabo.jp/20090617215552

                        バッドノウハウってのはかっこつけた単語じゃなくて、奥が深い症候群を戒めた語だよ。 自分が知ってる「業界の雰囲気」ってのが偏ったものだと知覚した方がいい。 それが相応しい...

                        • http://anond.hatelabo.jp/20090617223655

                          職務的にはC++が適してるから使ってるんだなあこれがまた。 業務系SEやってる友達と話したときはC++wwwねえよwwwせめてC#にしとけwwwって感じだったけど。 業務系システムはプログラミン...

                  • http://anond.hatelabo.jp/20090617144121

                    C・C++の面倒くさいことって具体的に何? 自分は仕VB・C・C++しか使ったことないが、面倒くさいと思ったことない。 他の言語ってそんなに楽なんだろうか?

                    • http://anond.hatelabo.jp/20090617222616

                      その経歴なら是非スクリプト言語を使ってみることを勧める。 Ruby, Perl, Pythonのうち1つは覚えた方がいい。絶対役に立つよ。 一昔前ならPerlを進めてたところだけど、今ならRubyかな。 ht...

                    • http://anond.hatelabo.jp/20090617222616

                      型。状況や文脈を判断してよきに計らってほしい。 ポインタ。と言うよりメモリ管理か。必要に応じて増やすなり減らすなりよきに計らってほしい。

                    • http://anond.hatelabo.jp/20090617222616

                      めんどくせーめんどくせー言ってる増田だけど。 C/C++はまずガベージコレクタが無いのがめんどくさすぎる。いちいちライブラリ導入したりboostのスマートポインタ使ったりしなきゃいけ...

                      • http://anond.hatelabo.jp/20090617231810

                        適材適所 sed ちょっとした正規表現抜き出しに perl そこそこの文書処理に Java わりと何でもいけるが、わりと平均的にめんどくさい JSP メモリ64K制限さえなければすばらしかったが、Ja...

            • http://anond.hatelabo.jp/20090617130518

              PHPで一番困るのは、この手の変換が直感的でも統一的でもなことだな。 「自分が何をしようとしているのか」が素直に書けないんだよね。 言語として元になっているPerlにも文字と数値...

            • http://anond.hatelabo.jp/20090617130518

              PHPの「==」は「数値として比較する」ためのものであって、そもそも文字列として比較するときに使うためのものではないという説。 文字列比較を意図するのであれば、 if (strcmp(&quot;0x0A...

              • http://anond.hatelabo.jp/20090617164618

                文字列比較を意図するのであれば、 if (strcmp("0x0A", "10")) { print '(´ε` )チュッ';} とすべき。当然チュッされない。 strcmp()は文字列が等しいときに0になるから、これだとチュッされ...

              • http://anond.hatelabo.jp/20090617164618

                そこの増田よ。 strcmpの使い方を間違っておられる。 さっと手元で書いたから間違えたのならまだいいが、いつもその書き方をしてるのなら君書いたプログラムには重大なバグが潜んで...

            • PHPではa==b, b==cでもc!=aなことがある

              PHPの比較の素晴らしさ加減は正常 @ はてな匿名ダイアリー PHPの「==」は数値比較なので、文字列は数値に変換されてから比較される。 PHPの「文字列→数値」の暗黙の変換は、文字...

            • http://anond.hatelabo.jp/20090617130518

              ===演算子を使えよ if ("0x0A" === "10") { print '(´ε` )チュッ';}else{ print '\(^o^)/';} \(^o^)/ ==演算子は方をキャストしながら、ほぼ同じなら同じと見なせという意味。 HTMLとかで曖昧に...

              • http://anond.hatelabo.jp/20090618113950

                自己レス 012とかは、よく桁のパディングで 000001 と 1が同じであることを見つけるとかって処理をするから、8進数と見なしてくれるより、10進数で0詰めって見なしてくれた方が、テキ...

              • http://anond.hatelabo.jp/20090618113950

                もちつけ。 ===演算子を使うなとは書いてないし、8進数使いたいとも書いてない。 元記事はただ事実をありのまま書いているだけだ。 そして誰も「つのだ★ひろ」には突っ込まないw

                • http://anond.hatelabo.jp/20090618115402

                  えー、PHPの世界ではそういうときは===をつかうってなってるのに・・・ わざわざ==を使って 他の言語の規則を持ってきてどうのこうの言って===に触れないってのは、ちょっと意地悪い...

                  • http://anond.hatelabo.jp/20090618115804

                    ===なんていう意味不明な変態演算子をわざわざ使わなきゃいけない言語なんて…。 まぁPHPさわったことないけど。

                  • http://anond.hatelabo.jp/20090618115804

                    String型同士の比較であっても整数と解釈される文字列の場合は整数に変換される。 この仕様は知っていたが、まさか0x0Aという文字列が、普通にキャストした場合は0にしかならないのに...

                    • http://anond.hatelabo.jp/20090618121442

                      もともと if("0x0a" == 10){ } を成り立たせた方が都合がよい。というのの応用で "0x0a" == 10 == "10" となるだけだからねぇ。 if ("0x0A" == 0x0A) { print '(´ε` )チュッ';}else{ print '\(^o^)/';} は'(...

            • [PHP]PHP「”0x0A” == ”10”はTRUEですがよろしいですか」

              ぼく「えっ」 PHP「”0x0A” == ”10”はTRUEになりますが」 ぼく「いえFALSEです」 PHP「えっ」 ぼく「えっ」 PHP「まだ比較したことがないということでしょうか」 ぼく「えっ」 PHP「えっ」 ...

            • [PHPコーディング規約][PHP]

              PHPコーディング規約  http://www.sksk.info/php.html 404 Blog Not Found:そろそろPHPに関して一言いっとくか  http://blog.livedoor.jp/dankogai/archives/50835571.html 404 Blog Not Found:「PHPなめんな」と「(Perl|Pytho...

              • http://anond.hatelabo.jp/20090618152620

                こうやって並べてみると PHP(C/Java/Ruby/Python好きな物に置換可能)は、良い・悪いの議論って、 本当に、隣の葡萄はすっぱい。俺のレモンは甘い 議論なんだなぁと。

            • 「はてな匿名ダイアリーによるプログラミング言語ユーザー論まとめ」をトゥギャりました

              プログラミング言語ヒエラルキーにおける罵倒 http://anond.hatelabo.jp/20070502200124 phpのいやなところ / perlのいやなところ http://anond.hatelabo.jp/20070522174725 LL編プログラミング言語ヒエラルキーに...

          • PHPのあの関数をPerlでやるには?

            元ネタ http://phpspot.org/blog/archives/2009/12/phpjavascriptph_1.html 面白そうだと思ったので僕もやってみた。モジュールはPerl5.8系の標準モジュールのみ利用可という制限。 全部はキツイので関数...

          • [PHP]create_functionで生成された匿名関数の一覧を得る関数

            ひーほー。いやぁさてさて一体このコード中に何度create_functionで匿名関数が生成されたのかふと気になったあなたのためにこんな関数を作ってみたよ! function get_lambda_functions () { $i ...

          • うたまっぷと歌ネットの歌詞をコピペするブックマークレット

            を作ってみた。 うたまっぷ javascript:(function(){%20var%20t;%20var%20d=document;%20var%20h=new%20XMLHttpRequest();%20var%20r=d.location.href.match(/surl=([A-Za-z0-9]+)/);%20h.open('GET','phpflash/flashfalsephp.php?unum=?'+r[1],true);%2...

          • PHPでQuineプログラミング

            &#82;&#117;&#98;&#121;&#12391;&#12358;&#12393;&#12435;&#12370;&#81;&#117;&#105;&#110;&#101;&#40;&#12392;&#65;&#65;&#22411;&#81;&#117;&#105;&#110;&#101;&#12398;&#20316;&#12426;&#26041;&#35611;&#24231;&#41; &#112;&#101;&#114;&#108;&#32;&#45;&#32;&#81;&#...

          • [ruby]闇プログラマーによる、うるう年の判定処理

            以下の記事を読んだ私は違和感を覚えた。 &#31169;&#12364;&#12477;&#12501;&#12488;&#12454;&#12455;&#12450;&#25216;&#34899;&#32773;&#12434;&#12420;&#12417;&#12383;&#29702;&#30001; 今時のソフトウェア技術者というものは...

            • http://anond.hatelabo.jp/20100925163206

              sqlとかでisdateしてやれば済むお話しさー。 最初の要件定義にうるう年について書かれていなければ、うるうどしが来たらうるう年対応でお金をもらえばいいじゃない。 というより、綺麗...

              • http://anond.hatelabo.jp/20100925165528

                超人が500行で1時間で書いたスマートなプログラムよりも、凡人が10000行、1カ月かけてつくったプログラムのほうがお金にはなるんだ。 マジレスすると、上記の条件であれば、案件...

          • より良いPHPerにならないための20Tips

            http://1-byte.jp/2011/03/20/20_tips_you_need_to_learn_to_become_a_better_php_programmer/ 良いPHPerだって?そんなものは丸めてゴミ箱にでも捨ててしまった方が資源の再利用になる分いくらかマシだ。 つまり...

            • http://anond.hatelabo.jp/20110320223445

              ペロペロ 1. htmlのはき出しがあるやつは?&gt;を書いたほうがいいよ。それ以外は最近はかないのがはやりだねさらに昔はevalとかで書いてた 2. configこれはwwwやpublic_html以下にしかconfigを配...

            • http://anond.hatelabo.jp/20110320223445

              21. 分散SCMを使え なにはともあれまずはコミットだ 粒度だクソだはpushするときにかんがえろ 1コミットで合わせて全然関係ない別の場所を変更したおまえは死刑だ

            • より良いPHPerになるための20Tips

              去年の話ですが、海外でこんな記事が上がっていました。 20 Tips you need to learn to become a better PHP Programmer 記事の内容は、かなりレベルが低いです。 しかし、初心者のうちに知っておけば、...

          • プログラミング出来ない奴あっちよりこっち来い

            http://anond.hatelabo.jp/20130322031333 プログラミング出来る方法教えるだって?そんなものは丸めてゴミ箱にでも捨ててしまった方が資源の再利用になる分いくらかマシだ。 こんなタイトルに...

            • 英語しゃべれない奴ちょっと来い

              http://anond.hatelabo.jp/20130322202542 コレ見て書いてみたくなっただけ。 英語が話せるようになる方法教えるだって?そんなものは丸めてゴミ箱にでも捨ててしまった方が資源の再利用になる...

            • 英語しゃべれない奴ちょっと来い

              http://anond.hatelabo.jp/20130322202542 コレ見て書いてみたくなっただけ。 英語が話せるようになる方法教えるだって?そんなものは丸めてゴミ箱にでも捨ててしまった方が資源の再利用になる...

            • 英語しゃべれない奴ちょっと来い

              http://anond.hatelabo.jp/20130322202542 コレ見て書いてみたくなっただけ。 英語が話せるようになる方法教えるだって?そんなものは丸めてゴミ箱にでも捨ててしまった方が資源の再利用になる...

            • 英語しゃべれない奴ちょっと来い

              http://anond.hatelabo.jp/20130322202542 コレ見て書いてみたくなっただけ。 英語が話せるようになる方法教えるだって?そんなものは丸めてゴミ箱にでも捨ててしまった方が資源の再利用になる...

            • 英語しゃべれない奴ちょっと来い

              http://anond.hatelabo.jp/20130322202542 コレ見て書いてみたくなっただけ。 英語が話せるようになる方法教えるだって?そんなものは丸めてゴミ箱にでも捨ててしまった方が資源の再利用になる...

            • 英語しゃべれない奴ちょっと来い

              http://anond.hatelabo.jp/20130322202542 コレ見て書いてみたくなっただけ。 英語が話せるようになる方法教えるだって?そんなものは丸めてゴミ箱にでも捨ててしまった方が資源の再利用になる...

            • 英語しゃべれない奴ちょっと来い

              http://anond.hatelabo.jp/20130322202542 コレ見て書いてみたくなっただけ。 英語が話せるようになる方法教えるだって?そんなものは丸めてゴミ箱にでも捨ててしまった方が資源の再利用になる...

            • 英語しゃべれない奴ちょっと来い

              http://anond.hatelabo.jp/20130322202542 コレ見て書いてみたくなっただけ。 英語が話せるようになる方法教えるだって?そんなものは丸めてゴミ箱にでも捨ててしまった方が資源の再利用になる...

      • http://anond.hatelabo.jp/20071030034313

        つかわさせてもらってええのん?

      • http://anond.hatelabo.jp/20071030034313

        キャッシュ無しかよ。 中卒の俺でもこの程度のもの自作で持ってるぞ。

      • http://anond.hatelabo.jp/20071030034313

        PHP自体がもともとPerlで作られたHTML用のテンプレートエンジンのようなもんなんだから 独自タグだけじゃなくてそれ以外の機能がないとPHPでテンプレートエンジンを使う意味があまりない...

        • http://anond.hatelabo.jp/20071030213453

          smatyもそうだけどphpでテンプレート機能があると、 rubyのrhtmlファイルみたいにできていいじゃない? PHP自体がもともとPerlで作られたHTML用のテンプレートエンジンのようなもんなんだか...

      • http://anond.hatelabo.jp/20071030034313

        Smartyあるからいらない

      • 55行で作るC#用テンプレートエンジン

        http://anond.hatelabo.jp/20071030034313 の二番煎じ あまりのアホさに、作ってて気が狂いかけた 方針 &lt;%= expr %&gt; で C# の式を echo(Htmlエスケープ付き) &lt;% code %&gt; で C# のコードを埋め込み eva...

      • 60行で作らないPHP用テンプレートエンジン

        今更だけど60行で作るPHP用テンプレートエンジンをクラス化した。 PHP5で動かしてね 細かい使い方はコード見て適当に判断してね もちろん改変、商用利用自由にね サンプルテンプレー...

      • [php]超高速PHPテンプレートエンジン - TEAR::View

        60行で作るPHP用テンプレートエンジン 以前見た時から気になっていて、coco実装時にちょうどいい機会でしたので私も作ってみました。TEAR::Pagerに続く第二弾、TEAR::View。ちなみに47行です...

    • http://anond.hatelabo.jp/20071108232701

      レイアウト機能ってあれか、PerlのTemplate-ToolkitのWRAPPERみたいなもんか。 Smarty版もここにあるね→やたーーSmartyでTTのWRAPPERエミュレーションができたよーー - サタケ家

記事への反応(ブックマークコメント)