ホームページ  >  記事  >  バックエンド開発  >  HTMLを生成するphpプログラム class_PHPチュートリアル

HTMLを生成するphpプログラム class_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 16:54:57774ブラウズ

これはコンストラクターを使用して直接実装されています。静的ページを生成するプロセスが多数あることを考慮して、これはクラス内の template() を templateHtml() に置き換えるだけです。

ここでは、コンストラクターを直接使用して実装していますが、静的ページを生成するプロセスが多数あることを考慮して、これはクラス内の template() を置き換えるだけです。それを実現するには templatehtml() を使用します。

*/

クラステンプレート

{
var $temp; //読み込んだテンプレートページのファイル名(パスを含む)
var $html; //生成されるhtmlファイル名(パスを含む)
var $err; var $test; //データフロー
var $arr; //置換対象の配列パターン(キー名->テンプレートラベル、キー値->置換内容)

関数テンプレート()

{

$this->temp="";                                                                                                                                                                                                                                             }

関数テンプレートhtml($temp,$html,$arr)
{
$err=$this->chkfile($temp);
if((int)$err==0)
{

                                                                                                                                                                                              $test=fread($fp,filesize($temp)); // テンプレート ページのデータ ストリームを読み取ります

                                                                                                                                                                                                                                                                                          }
echo "テンプレート ページ ".$temp から生成されました。" ".$html.$this->error($err);
戻る;
}

/*
*ファイルが存在するかどうかを確認します
*エラーメッセージを返す
*/

関数chkfile($file)
{
if (file_exists($file))
{
0 を返す;
}
1 を返します;
}

/*
※配列ファイルの内容に応じて、データフローパターン(キー名→テンプレートラベル、キー値→置換内容)を置換します
*データストリームを返す
*パラメータ $arr: 配列
*パラメータ$test: データフロー
*/
関数 arr_replace($arr,$test)
{
$ss=$test;
foreach ($arr as $key => $value)
{
$ss= str_replace($key,$value,$ss);
}
$ss を返します;
}

/*
*データストリームをファイルに書き込みます
※実行状態に戻ります
*パラメータ$html: 生成されるHTMLファイル
*パラメータ$test: データフロー
*/
関数 writefile($html,$test)
{
$stat=2;
If($this->chkfile($html)==0) //ファイルが存在するかどうかを判断します
{
$stat=0; //すでに存在し、0を返します
}

If($f=fopen($html,"w")) //ファイルを書き込みモードで開き、ファイルが存在しない場合は作成します
{
fputs($f,$test);
fclose($f);
                                                                                                                          }
それ以外
{
$stat=2; //書き込み失敗すると 2 が返されます
}
$stat を返します;
}
/*
*エラーメッセージ
*エラーメッセージを返す
*パラメータ $err: エラー番号
*パラメータ $file: エラーファイル
*/
関数エラー($err)
{
$メッセージ=""
switch((int)$err)
{
ケース 0 :
$message="静的ページが正常に生成されました";
休憩;
ケース1:
$message="テンプレート ページを開けませんでした。存在するかどうかを確認してください";
休憩;
ケース 2:
$message="ファイルの生成に失敗しました。ディレクトリのアクセス許可を確認してください";
休憩;
デフォルト:
$message="不明なエラー";
}
$メッセージを返します;
}

/*
*
*主にテンプレート ページを読み取り、データ ストリーム (トップ、フッターのパブリック ファイルなど) を返すために使用されます
*パラメータ$file: テンプレートページのパス
*/

関数 readhtml($file)
{
$test="";
$err=$this->chkfile($file);
if($err==0)
{
$fp=fopen($file,"r"); // テンプレートページを読み取り専用モードで開きます
$test=fread($fp,filesize($file)); //テンプレートページのデータストリームを読み取ります
}
それ以外
{
$test=$file.$this->error($err);
}

$test を返します;

}

/*

*
*主に生成されたファイルを戻さずに削除するために使用されます
*パラメータ $file: ファイルパス
*/

関数 delete_file($file)
{
    if (file_exists($file))
    {
        $delete = chmod ($file, 0777);
        $delete = リンク解除($file);
        if(file_exists($file))
        {
            $filesys = eregi_replace("/","",$file);
            $delete = system("del $filesys");
            クリアスタットキャッシュ();
            if(file_exists($file))
            {
                $delete = chmod ($file, 0777);
                $delete = リンク解除($file);
                $delete = system("del $filesys");
            }
        }
        クリアスタットキャッシュ();
    }
}
  
}

/*
调用方法

demo.htmlの代価

{title}
{テキスト}


$sc=新しいテンプレート();
//$sc=新しいテンプレート($tmp,$ファイル名,$arr);   ()

$tmp="../template/temp.php教程";    //型板页
$filename="テスト.html";          // 生成页
$foot="../foot.html";           // 含まれる底文、头文件と同じ

$arr=配列();
$arr["{title}"]="新标题";
$arr["{text}"]="新内容";
$arr["{foot}"]=$sc->readhtml($foot);

$sc->templatehtml($tmp,$filename,$arr);

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631720.html技術記事ここでは、構築関数を直接使用して実現されており、静的生成の手順が非常に多くなる可能性があることを考慮して、関数に変更され、本が保存され、クラス内でtemplate()がtemplateHtmに置き換えられます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。