PHP Advent Calendar 2012 11日目の記事です。 昨日は Shusuke Otomo さんの 初めて Pull Request した話。 #phpadvent2012 | slumbers でした。 皆さん、テンプレートエンジンは何を使ってますか? おおっぴらに使ってますと発言するのもちょっと勇気がいるくらい、スキル高そうなPHPerの皆さんからよくdisられている(ような気がする)Smartyですが、実際のところ現役のユーザーは結構いるんじゃないでしょうか。 (参考記事 PHP ユーザは実際はどんなテンプレートエンジンを使っているのか? (途中経過) - A Day in Serenity @ kenjis) 今回はそんなSmartyを題材に「テンプレート変数のHTMLエスケープ」と、それに関連する機能「修飾子プラグイン (Modifier Plugin)」「変数フ
Smarty は、PHP 用のテンプレートエンジンです。Smarty には、エラーメッセージを出力する際の処理に起因する、クロスサイトスクリプティングの脆弱性が存在します。
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 これまでずっとSmarty2を使っていたんですが、いいかげんそろそろSmarty3に乗り換えてみます。 執筆時点での最新版は3.1.5でした。 ダウンロード・解凍後、libsフォルダを適当なところに突っ込みます。 中にはSmarty.phpおよびSmartyBC.phpがありますが、どうも中身を見るかぎりSmartyBC.phpは後方互換のために用意されたクラスみたいです。 Smarty2ではメソッド名などがスネークケースでしたが、Smarty3ではキャメルケースに改められています。 その橋渡しをするためのラッパクラスのようで、中身は大体こんなかんじです。 public function assign_by_ref($tpl_var, &$value){ $this->assig
平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 本件に関するお問い合わせはこちらよりお願いいたします。
Smarty3の最新β(β8)が出たのが3/5。 今後どうなっていくのか、正式版はいつ頃リリースなのかその辺気になるところですが、 使ってみている限りで特に不具合はない(このサイトはMobavleType+PHP5+Smarty3で構築されています)ので、 それほど大きな影響がない、あってもなんとかなるくらいの環境であれば移行してみても良いかも知れません。 (今から脆弱性が発見される可能性も無くはないですけど) Smarty3になると何が変わるかはSmarty3に同梱の「SMARTY2_BC_NOTES」ファイルに記載されています。 日本語訳はこちらにあります。 Smarty2.0からSmarty3.0への変更点 | スイナシア 大きな変更は、PHP5以上で動作というところだと思いますが、他にもメソッドチェーンをサポートしていたり、色々と地味に便利になっているような気がします。 で、Sma
PHP を書く人の事ってなんていうんでしょう。 前は(今も?)「ペチパー」とか言われたりしてましたが、 これが結構好きでした。なんか気が抜けた感じが好きです。 今ふと「ペチピスト」ってのを思いつきましたが、これまた良いなあ。 すごく頼りない感じが。 さて、そんなペチピスト(気に入った)な僕ですが、 以前の書いたように、エディターは秀丸を使用しています。 ただし、効率良く作業するためには強調表示やマクロは必須ですよね。 そこで、普段使用している PHP 用の秀丸の強調表示やマクロをご紹介します。 PHPまるごと強調表示 Ver1.0 関数や定数をハイライトしてくれる、PHP用の強調表示ライブラリです。 これが無いと始まりません。 ちょっと古いですが、今のところ問題なく便利に使用させてもらってます。 PHPマニュアル検索マクロ 関数のマニュアルを一発で開いてくれるマクロです。 関数をなぞってマ
Table of Contents 序文 I. はじめに 1. Smarty とは? 2. インストール 必要条件 基本的なインストール 拡張セットアップ II. テンプレートデザイナのための Smarty 3. 基本構文 コメント 変数 関数 属性 ダブルクォート内に埋め込まれた変数 演算子 Smarty の構文解析を回避する 4. 変数 PHP から割り当てられた変数 連想配列 配列のインデックス オブジェクト 設定ファイルから読み込まれた変数 予約変数 {$smarty} リクエスト変数 {$smarty.now} {$smarty.const} {$smarty.capture} {$smarty.config} {$smarty.section}、{$smarty.foreach} {$smarty.template} {$smarty.version} {$smarty.lde
Posted by マルタ | 2006.11.21 at 18:14 [ Posted in Smarty, PHP ] PHPのテンプレートエンジンSmarty。 便利なのかなーと思ってちょっとずつ勉強してるんですけど、ずっとわからなかったことに、「PHP側でconfファイルを読み込む」というのがありました。 やっとわかったぞ、のメモ。 my.tpl テンプレートでは {config_load file="my.conf"} この操作とまったく同じことを、PHPでやるには my.php <?php $smarty->config_load('my.conf'); ?> そうかーなるほどね。 そして、セクションの読み込みも可能だそうです。 参考リンク config_load config_load get_config_vars…読み込まれたコンフィグ変数を取得。
confi_load関数|設定ファイルから変数読み込み 設定ファイルからテンプレートに変数を読み込みます。また、設定ファイルにはセクションが含まれます。section属性を指定する事で、セクション内の変数を読み込む事ができます。 注: 設定ファイルのsectionとテンプレートの組み込み関数sectionは 偶然に名称が同じというだけで相互に関係性はありません。 基本構文
すでにGoogleから0.5.5が出ていることは書いたけど、エラー状況と設定方法を書いておこう。 ◆エラー状況 0.5.4では以下のようなエラーが出て、Smartyの編集ができない。 Error opening the editor. Reason: tried to access field org.eclipse.php.internal.iu.editor.PHPStructuredEditor.jsExternal from class org.eclipse.php.smarty.ui.editor.SmartyStructuredEditor ◆設定方法 Google CodeからSmarty_PDT_0.5.5.zipをダウンロード http://code.google.com/p/smartypdt/issues/detail?colspec=ID%20Type%20Sta
HTML_QuickFormとの格闘その2~Smartyとの連携・基本編 ishii (2005年6月16日 05:02) | 個別ページ | トラックバック(2) カテゴリ PHP タグ HTML, PEAR, PHP, QuickForm, Smarty 前回はHTML_QuickFormの基礎を勉強したので、今回は応用。Smartyとの連携ってのをやってみる。 ******************************************************************************** 大きな流れ ******************************************************************************** addElement:オブジェクト設定 ↓ addRule:検証ルール設定 ↓ applyFi
{if $name eq 'Fred'} Welcome Sir. {elseif $name eq 'Wilma'} Welcome Ma'am. {else} Welcome, whatever you are. {/if} {* 論理演算子 "or" の例 *} {if $name eq 'Fred' or $name eq 'Wilma'} ... {/if} {* 上と同じ *} {if $name == 'Fred' || $name == 'Wilma'} ... {/if} {* 括弧は使用可能 *} {if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#} ... {/if} {* PHP 関数を埋め込むことも可能 *} {if count($var) gt 0} ... {/if} {* 配列のチ
■[備忘][Java][PHP][JavaScript][DB][Smarty]日付フォーマット いつも分からなくなる。 Java SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String s = sdf.format(new Date()); php $s = date("Y-m-d H:i:s"); $s = strftime("%Y-%m-%d %H:%M:%S"); JavaScript var d = new Date(); var s = d.getYear + "-" + (d.getMonth() + 1) + "-" + d.getDate() + " " + d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds(); /
平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 本件に関するお問い合わせはこちらよりお願いいたします。
平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 本件に関するお問い合わせはこちらよりお願いいたします。
平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 本件に関するお問い合わせはこちらよりお願いいたします。
PEAR1.4.0以降でChannelの機能が利用可能になりました。 Channelとは、以前も紹介したとおり、pearコマンドでpear.php.netからだけではなく、別のパッケージ配布サイトからもパッケージをダウンロード&インストールできる機能です。 たとえば、phpspotにてパッケージを配布するように設定すれば、pearコマンドでphpspotからパッケージのダウンロード&インストールが可能になります。 Smartyはpear.php.netでは配布されていませんが、別のサイト(Pearified.com)でパッケージが配布されていて、Channel機能を使うことでpearコマンドによりインストール可能です。 以下、サンプルを行うためにはpear upgrade PEAR コマンド等でpearを最新のものにしましょう。 パッケージ配布先の追加 $ pear channel-dis
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く