$title = 'My title' ; include( 'templates/index.html' ); * This source code was highlighted with Source Code Highlighter .$title = 'My title' ; include( 'templates/index.html' ); * This source code was highlighted with Source Code Highlighter .$title = 'My title' ; include( 'templates/index.html' ); * This source code was highlighted with Source Code Highlighter .$title = 'My title' ; include( 'templates/index.html' ); * This source code was highlighted with Source Code Highlighter .
$title = 'My title' ; include( 'templates/index.html' ); * This source code was highlighted with Source Code Highlighter .
< html > < head > < title > <? php echo $ title ? > </ title > </ head ><!-...->*このソースコードは、 ソースコードハイライターで強調表示されました。
クラス STempExceptionは例外{}を拡張します*このソースコードは、 ソースコードハイライターで強調表示されました。
クラス STemp{/ ***テンプレートが配置されているディレクトリの名前。** @var文字列。* @access private。* /プライベート $パス。/ ***テンプレートの名前。** @var文字列。* @access private。* /プライベート $テンプレート。/ ***割り当てられたテンプレート変数が保持される場所。** @var配列。* @access private。* /private $ variables = array();/ ***テンプレートエンジンのパラメーター。** @var配列。* @access private* /private $ params = array('xss_protection' => true 、'exit_after_display' => true 、'endofline_to_br' => false);/ ***テンプレートに含まれるファイル。** @var文字列。* @access private。* /private $ include_file;/ ***クラスコンストラクター。 テンプレートが配置されているディレクトリの名前を設定します。** @param string $テンプレートが配置されているディレクトリのパス名。デフォルトは「templates /」。* @access public。* /パブリック関数__construct($ path = 'templates /' ){$ this-> path = $ path;}/ ***テンプレートエンジンのパラメーターを設定します。** @param string $パラメーターのパラメーター名。* @param bool $パラメータの値。* @return boolパラメータが設定されている場合はTRUE、設定されていない場合はFALSE。* @access public。* /パブリック関数setParam($ param、$ value ){if (isset($ this-> params [$ param])){$ this- > params [$ param] = $ value ;trueを 返し ます 。}falseを 返し ます 。}/ **** @param string $ include_fileインクルードファイルへのパス。* @access public。* /パブリック関数setIncludeFile($ include_file){$ this-> include_file = $ this->パス。if (!file_exists($ this-> path。$ include_file))throw new STempException( 'Include file' 。$ this- > include_file。 'not exitst' );}/ ***値をテンプレート変数に割り当てます。** @param string $ nameテンプレート変数名。* @param mixed $ value割り当てる値。* @access public。* /パブリック関数assign($ name、$ value ){$ this-> variables [$ name] = $ value ;}/ ***テンプレートの結果を実行して表示します。** @param string $ templateテンプレート名。* @access public。* /パブリック関数表示($テンプレート){$ this-> template = $ this-> path。$ template;if (!file_exists($ this-> template))throw new STempException( 'Template file' 。$ template。 'not exitst' );require_once($ this->テンプレート);if ($ this- > params [ 'exit_after_display' ])出る}/ ***テンプレート変数の値を取得します。** @param string $ nameテンプレート変数名。* @returnは、この名前を持つテンプレート変数の混合値です。 変数が設定されていない場合はFALSE。* @access private。* /プライベート関数__get($ name){if (isset($ this-> variables [$ name])){$ variable = $ this-> variables [$ name];if ($ this- > params [ 'xss_protection' ])$変数= $ this-> xssProtection($変数);if ($ this- > params [ 'endofline_to_br' ])$変数= $ this-> endoflineToBr($変数);$変数を返します。}NULLを返します。}/ ***ファイルを含める** @access private* /プライベート関数includeFile(){if (!file_exists($ this-> include_file))throw new STempException( 'Include file' 。$ this-> include_file。 'not found' );require_once($ this-> include_file);}/ ***語尾の形成のため。** @param int $値番号。* @param string $ word0単数形の単語。* @param string $ word1単語の複数形(2、3)。* @param string $ word2複数形の単語。* @param string $ separator separator、デフォルト ''。* @return文字列形式の単語* @access private。* /プライベート関数モーフ($ 値 、$ワード0、$ワード1、$ワード2、$区切り= '' ){if (preg_match( '/ 1 \ d $ /' 、$ value ))return $ value 。$ separator。$ word2;elseif(preg_match( '/ 1 $ /' 、$ value ))return $ value 。$ separator。$ word0;elseif(preg_match( '/(2 | 3 | 4)$ /' 、$ value ))return $ value 。$ separator。$ word1;他にreturn $ value 。$ separator。$ word2;}/ *** XSSからの保護用。**保護のための@param mixed $変数データ。* @return混合保護データ。* @access private。* /プライベート関数xssProtection($変数){if (is_array($ variable)){$ protected = array();foreach ($ key => $ value としての $変数)$ protected [$ key] = $ this-> xssProtection($ value );$ protectedを 返します。}return htmlspecialchars($変数);}/ ***文字列のすべての改行の前にHTML改行を挿入します。**保護のための@param mixed $変数データ。*すべての改行の前に<br />を含む文字列が挿入された@return混合データ。* @access private。* /プライベート関数endoflineToBr($変数){if (is_array($ variable)){$ protected = array();foreach ($ key => $ value としての $変数)$ protected [$ key] = $ this-> endoflineToBr($ value );$ protectedを 返します。}return nl2br($変数);}}*このソースコードは、 ソースコードハイライターで強調表示されました。
$ stemp = new STemp();$ stemp-> assign( "title" 、$ article [ 'title' ]);$ stemp-> assign( "article" 、$ article);$ stemp-> assign( "comments" 、$コメント);{$ stemp-> setIncludeFile( " article.tpl.php " );$ stemp-> display( "index.tpl.php" );} catch (STempException $ e){die( 'STemp error:' 。$ e-> getMessage());}*このソースコードは、 ソースコードハイライターで強調表示されました。
< html >< 頭 >< タイトル > <? php echo $ this- > title? > </ タイトル ></ 頭 >< 本体 ><? php $ this- > includeFile()? ></ body ></ html >*このソースコードは、 ソースコードハイライターで強調表示されました。
< h1 > <? php echo $ this- >記事['title']? > </ h1 ><? php $ this- > setParam( 'xss_protection'、false); $ this- > setParam( 'endofline_to_br'、true)? >< div class = "content" ><? php echo $ this- > article ['content']? ></ div >< p > <? php echo $ this- > morph(count($ this- > comments)、 'comment'、 'comment'、 'comment')? > : </ p ><? php $ this- > setParam( 'xss_protecttion'、true)? ><? php foreach ($ this- > $ key = > $ valueとしてコメント){? >< p class = "user" > <? php echo $ value [ 'username' ]? > : </ p >< p class = "comment" > <? php echo $ value [ 'text' ]? > </ p ><? php }? >*このソースコードは、 ソースコードハイライターで強調表示されました。
Source: https://habr.com/ru/post/J45259/More articles:オーストラリアのトラクター視力の問題フリーランサーでの少しの経験Python 3.考慮事項。テンプレートエンジンを使用する方法企業はウィキペディアの編集を許可されるべきですか?ベンチャーデートサービスSearchWikiテンプレートエンジンに関する考察国連はインターネットに何が起こるかを考えていますAll Articles