サンプルコード:
require('libs/Smarty.class.php');
$tpl=新しいSmarty();
$tpl->template_dir='./templates/';
$tpl->compile_dir='./templates_c';
$tpl->config_di
サンプルコード: require('libs/Smarty.class.php'); $tpl=新しいSmarty(); $tpl->template_dir='./templates/'; $tpl->compile_dir='./templates_c'; $tpl->config_dir='./config/'; $tpl->cache_dir='./cache/'; $tpl->left_delimiter='right_delimiter='}>'; ob_start(); //出力バッファをオープンします $tpl->assign('s_title',$_POST['title']);//ウェブサイトのタイトルを設定します // 以下は、渡された変数を受け入れ、テンプレート ページに割り当てます。 $tpl->assign("タイトル",$_POST['タイトル']); $tpl->assign("コンテンツ",stripslashes($_POST['content'])); $tpl->assign("時刻",date("Y-m-d")); $tpl->display("tpl.html"); $this_my_f=ob_get_contents();//バッファデータを読み取る ob_end_clean();//バッファデータをクリア // - - - - - - - - - - - - フォルダーを作る - - - - - - - - - - - - ----- $dir_name =date("Ymd"); //現在の日付を使用して、生成される静的ページが保存されるディレクトリを作成します。 if (!is_dir("webpage/".$dir_name)) //まず、このディレクトリが作成されているかどうかを確認します。存在しない場合は、最初にこのディレクトリを作成します { mkdir("webpage/".$dir_name); } $filename="tpl.html"; //--------------------------静的ページを保存するパス----- -- -- if(tohtmlfile_cjjer($filename,$this_my_f)){ echo (「ページが正常に生成されました」); }それ以外{ エコー ("") } ?> function tohtmlfile_cjjer($file_cjjer_name,$file_cjjer_content) { //$dir_name =date("Ymd"); //現在の日付を使用して、生成される静的ページが保存されるディレクトリを作成します。 //if (!is_dir($dir_name)) //まず、このディレクトリが作成されているかどうかを確認します。存在しない場合は、最初にこのディレクトリを作成します //{ //mkdir($dir_name); //} if (is_file ($file_cjjer_name)){ @unlink ($file_cjjer_name); } $cjjer_handle = fopen ($file_cjjer_name,"w"); if (!is_writable ($file_cjjer_name)){ false を返します。 } if (!fwrite ($cjjer_handle,$file_cjjer_content)){ false を返します。 } fclose ($cjjer_handle); //ポインタを閉じる $file_cjjer_name を返します。 } Smarty の最大の機能は、テンプレート ページをキャッシュすることです。つまり、Smarty を通じてコンパイル + 解析という 2 つのステップを完了できます。 ステップ 1: コンパイルします。これは、テンプレート ファイルのタグを純粋な PHP に置き換えて、キャッシュの場所に保存することを意味します。保存されたファイルの拡張子は、私がこのステップのコンパイルと呼んでいます (これは正式な名前ではありません)。 ステップ 2: 分析。つまり、コンパイルしたばかりの PHP ファイルを解析して実行するだけです ~~これ以上説明する必要はありません。 本題に入り、次のコードを Smarty.class.php ファイルに追加します。 関数 MakeHtmlFile($file_name, $content) { //ディレクトリが存在しない場合は作成する if (!file_exists (dirname($file_name))) { if (!@mkdir (ディレクトリ名($file_name), 0777)) { die($file_name."ディレクトリの作成に失敗しました!"); } } if(!$fp = fopen($file_name, "w")){ echo "ファイルを開けませんでした!"; false を返します。 } if(!fwrite($fp, $content)){ echo "ファイルの書き込みに失敗しました!"; fclose($fp); false を返します。 } fclose($fp); chmod($ファイル名,0666); この関数の機能はファイルを保存することです~~ 呼び出し方法は以下の通りです '../libs/Smarty.class.php' が必要です。 $smarty = 新しい Smarty; //....変数の定義と代入を省略 //$smarty->display('index.tpl'); $content=$smarty->fetch("index.tpl"); $smarty->MakeHtmlFile('./index.html',$content);//生成 smarty は静的なページの概要を生成します: 静的ページ生成時にテンプレートを分離する方法 通常のアプローチは、テンプレートを読み取り、正規表現を使用して、テンプレート内の変数を静的ページを生成したい値に置き換えることです。専門家の指導を受けて、SMARTY にこの機能があることがわかりました。調査の結果、非常に便利で使いやすいことがわかりました。重要な点は次のとおりです。 ob_start();//バッファをオープンする $smarty->assign(“a”,$a); $smarty->display("temp.html"); $html_content= ob_get_contents(); //バッファ内のデータを読み取ります。 ob_end_clean();//バッファを閉じる $htm_content のコンテンツは必要なものなので、それをページに書き込むだけです。 |