PHPによるHTML静的ページの生成

6818 ワード

PHPからHTML静的ページを生成し、年と月の名前で作成されたディレクトリに格納します.
すべてのデータの一括生成を読み込み、すべて生成した後にメッセージをポップアップします.
ロット生成数を指定できます.800を超えないことを推奨します.そうしないと、実行速度に問題があります.
(周知の理由から、データベースに関するデータフィールド名が変更され、パラメータフィルタリングの部分がコードの明瞭化のために除去された)
説明:元のダイナミックアドレスはmoban.php?id=1、生成後アドレスはhtml/200808/sell_1.html .page.phpはページングプログラムで、このブログに公開されています.
ページの使用方法は、このコードをmakeとして保存します.php、使用方法はブラウザがmakeにアクセスする.php?t=数量&pg=ページ;例えばmake.php?t=300&pg=2、すなわち300個のデータが生成されるたびに、データリストの2ページ目から生成され、すなわち前の300個をスキップする.パラメータを追加しない場合はmakeに直接アクセスします.phpでは、デフォルトで200個ずつ生成され、最初のページから生成されます.
完全なインスタンス:

".$pager->countall."  ,     ".$pager->countlist."".$pager->page."  ";//     
$bb=$pager->page; 
$pagenav=$pager->backstr.$pager->thestr.$pager->nextstr; 
$limitFrom = $pagelist*($pager->pg-1); 
$result=mysql_query("select * from 2carsell ORDER BY id DESC limit $limitFrom,$pagelist"); 
?> 
.. echo $datastat?>

//php print "


echo $datastat." "?>


$aa=$aa+1; if($aa>$bb){ echo ' , !'; echo "alert(' / !')"; }else{ echo " window.location='make.php?t=$pagelist&pg=$aa'; "; } ?>

例を見てから分析します
一般的にphp変換でhtmlページを出力するには、エビの文章を引用する方法が2つあります.
1つ目は、テンプレートを使用することです.現在PHPのテンプレートは多く、強力なsmartyや、使いやすいsmarttemplateなどがあります.各テンプレートには、出力内容を取得する関数があります.静的ページを生成する方法は,この関数を利用することである.この方法を用いる利点は,コードが比較的明瞭で,可読性がよいことである.
ここではsmartyを例に、静的ページを生成する方法を説明します.

assign("title","Hello World!");
$content = $t->fetch("templates/index.htm");
//    fetch()            ,  $content    ,         
$fp = fopen("archives/2005/05/19/0001.html", "w");
fwrite($fp, $content);
fclose($fp);
?>


第2の方法:obシリーズの関数を利用する.ここで用いる関数は主にob_start(), ob_end_flush(), ob_get_content()、ob_start()はブラウザバッファを開くという意味で、バッファを開くとPHPプログラムからの非ファイルヘッダ情報はすべて送信されず、ob_が使用されるまで内部バッファに保存されますend_flush().ここで最も重要な関数はob_ですget_contents()は、この関数の役割はバッファの内容を取得することであり、上のfetch()に相当し、道理は同じである.




私が選んだ2つ目の方法はobシリーズの関数です
これを見始めたばかりの頃はよくわかりませんでしたが、obがoutput bufferingという意味で出力キャッシュという意味だと知りました.
出力の準備ができたら、すべてのデータをobに保存します.サーバーはphpを解析した後、クライアントに出力するhtmlコードをobに保存します.html静的ページを出力するには、キャッシュを取り出してhtmlページに書き込むだけでいいです.
だから原理は簡単です
ここではいくつかの関数を使いましたphpの多くの関数を初めて学んだので、私はまだ理解していません.
ob_start():スナップキャッシュを開始します.つまり、ここからブラウザのキャッシュを開きます.
ob_end_flush():ブラウザキャッシュを閉じる
ob_get_content():キャッシュ内容の読み出し
fopen("ファイルパス","開くモード")ファイルを開くこの関数の開くモードにはいくつかの主要なモードがあります.
「r」は読み取り専用で開き、ファイルポインタをファイルヘッダに向けます.
「r+」読み書き方式が開き、ファイルポインタをファイルヘッダに向けます.
「w」書き込み方式が開き、ファイルポインタをファイルヘッダに向け、ファイルサイズをゼロにカットします.ファイルが存在しない場合は作成を試みます.
「w+」は読み書きで開き、ファイルポインタをファイルヘッダに向け、ファイルサイズをゼロにカットします.ファイルが存在しない場合は作成を試みます.
fwrite("ファイル名","書き込み内容")書き込みファイル
fclose()ファイルを閉じる
私が変換するhtmlファイルはとても多くて数百個あるかもしれないためここでfopenの経路を静的に指定することはできませんみんなは1つの経路変数の中でユーザーからのidなどの情報を保存することができますhtmlファイルの命名を便利にします以下は私が前回phpと結びつけてxmlデータを読み取る簡単な例です

";
if($name)
echo $xml_data."
"; } function endElement($parser_instance, $element_name) // { global $name,$position; $name=false; $position=false; } //xml $htmlname=$id.".html";//$id id $htmlpath="archives/".$htmlname; // $content = ob_get_contents();// php $fp = fopen($htmlpath, "w"); fwrite($fp, $content); fclose($fp); ?>