ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルで HTML ファイルを生成するさまざまな方法の紹介

php_PHP チュートリアルで HTML ファイルを生成するさまざまな方法の紹介

WBOY
WBOYオリジナル
2016-07-20 11:11:031013ブラウズ

この記事では、PHP で HTML ファイルを生成するために使用できる 3 つの方法を紹介します。1 つ目は PHP の ob_start を使用し、2 つ目はスマート テンプレート フレンドを使用してメソッドを生成します。

インターネット上で、動的 Web サイト全体を静的にする方法を尋ねている人をよく見かけます。実際、実装方法は非常に簡単です。

//以下はコードです
​​// ob_end_clean() を終了し、このページを変数に出力します
$temp = ob_get_contents();
//ファイルを書き込みます
$fp = fopen('file name','w'); $fp,$temp) または die('ファイルの書き込みエラー');





これは、Web サイトを定期的に更新して再生成する必要があるため、あまり実用的ではありません。以下では私が使用する方法を使用します:
コードは次のとおりです コードをコピーします

コードは次のとおりです
コードをコピー

(File_exists ("xxx.html") $ time = time (); 変更時間が半分の場合現在時刻と 1 時間異なる場合は、HTML ファイルに転送されます。そうでない場合は、HTML が再生成されます。 if($time - filemtime(“xxx.html”) < 30*60) header(“Location: xxx.html”); }}コードをコピー
{ {
//ob_start()を先頭に追加します
ob_start();
//ページの詳細
//このページを最後に追加します変数
$temp = ob_get_contents();
ob_end_clean();
$fp = fopen('xxx.html','w'); または die ( 'Write file error');
//Redirect
header("Location:xxx.html");



上記で使用したキャッシュファイルは、大量に生成されると過負荷になります。以下に、より効率的な方法を紹介します。効率的な方法


入力内容の投稿ページは以下の通りです:
ファイル名: aa.html



コードは以下の通りです



ページを送信

タイトル:
コンテンツ:
http://www.bkjia.com/PHPjc/444692.html





以下はコードスニペットです:
ファイル名: bb.php

コードは次のとおりです コードをコピーします

//日付関数を定義します
function getdatetime()
{
$datetime=getdate ();
$strReturn=$datetime["year"]."-";
$strReturn=$strReturn.$datetime["mon"]."-";
$strReturn=$ strReturn.$datetime["mday "];
return $strReturn;
}

//時刻関数(ファイル名)を定義
function gettime()
{
$times=getdate();
$strtime=$times[ "年"];
$ strtime=$strtime.$times["月"];
$strtime=$strtime.$times["mday"];
$strtime=$strtime.$times["分"];
$strtime=$strtime.$times["秒"];
return $strtime;
}
?>


//送信された値が空かどうかを判断します
$submit=$_POST[ "submit"];
// ファイルのヘッダー情報を定義します
$htmltitle=$_POST["htmltitle"];
// ファイルの内容を定義します
$htmlbody=$_POST["htmlbody"];
if ($submit) {
//HTML ファイルのタグを定義します
$html1=$html1."";
$html1=$html1."";
$html1=$html1."";<br>$ html1=$html1.$htmltitle ;<br>$html1=$html1."";
$html1=$html1."" ;
$html1=$html1."";
$html1=$html1."";
$html1=$html1."

< ;/tr>";
$html1=$html1."gt;
";
$html1=$html1.$htmltitle;
$html1=$html1."
;
";
$html1=$html1.$htmlbody ;
$html1=$html1 ."
";
$html1=$html1."";
$html1= $html1."";

//今日のフォルダーが存在するかどうかを判定
if (!is_dir(getdatetime())) {
//存在しない場合は作成
mkdir(getdatetime(), 0777);
}

/ /HTML ファイルとして書き込む
$filedir=getdatetime();
$filename=gettime();
$filename=$filename.".html";
$fp=fopen("$filedir /$filename","w") ;
fwrite($fp,$html1);
fclose($fp);
echo "<script>alert('ファイルは正常に書き込まれました');location.href='111. php';</script> ";
}
?>


プロンプト ファイルが正常に書き込まれたら成功です。その後、対応するディレクトリに戻って、静的 HTML ファイルが生成されるかどうかを確認してください。

スマートなテンプレート生成方法

コードは以下の通り コードをコピー

require_once("./config/config.php");
ob_start() ;
$id =$_GET[id];
$sql="select * from table_name where id='$id'";
$result=mysql_query($sql);
$rs=mysql_fetch_object($result);
$ Smarty-> ;assign("showtitle",$rs->title);
$smarty->assign("showcontent",$rs->content);
$smarty->display("content.html ");
$this_my_f= ob_get_contents();
ob_end_clean();
$filename = "$id.html";
tohtmlfile_cjjer($filename,$this_my_f);
//ファイル生成関数
function tohtmlfile_cjjer($file_cjjer_name, $file_cjjer_content) {
if (is_file ($file_cjjer_name)){
@unlink ($file_cjjer_name) //存在する場合は削除します
}
$cjjer_handle = fopen ($file_cjjer_name,"w"); //ファイルを作成します
if (!is_writable ($file_cjjer_name)){ //書き込み許可を判定
return false;
}
if (!fwrite ($cjjer_handle,$file_cjjer_content)){
return false;
}
fclose ($cjjer_handle) / /Close pointer
return $file_cjjer_name; //ファイル名を返す
}
?>

smarty にはテンプレートページの内容を取得するメソッド fetch() があり、そのプロトタイプ宣言は次のようになります:gode

コードは次のとおりですコードをコピーするコード&lt;?phpfunctionfunction fetch($ resource_name、$ cache_id = null、
$ compile_id = null、$ display = fals)


?>



最初のパラメータはテンプレート名、2 番目のパラメータはキャッシュされた ID、3 番目のパラメータはコンパイルされた ID、4 番目のパラメータはテンプレートのコンテンツを表示するかどうかです。静的ページを生成します

コードは次のとおりです

コードをコピー //その他のテンプレート置換構文...
$smarty = new Smarty()
//次の文はページ上のすべてのコンテンツを取得します。最後のパラメータが false であることに注意してください
$content = $smarty->fetch('template name.tpl', null, null, false)

//コンテンツを書き込みます以下の静的ファイル
$fp = fopen('news.html', 'w' );
fwrite($fp, $content);

//OK、ここに news.htmlページが生成されたら、次の作業を行うことができます



さて、上記の方法と組み合わせると、ファイルを生成する原理は、最初にデータを読み取り、次に定義されたテンプレートを提供することとほぼ同じです。最後に fopen 関数を使用して .html ファイルを生成します。


www.bkjia.com

tru​​e

技術記事この記事では、PHP で HTML ファイルを生成するために使用できる 3 つの方法を紹介します。1 つ目は PHP の ob_start を使用し、2 つ目はスマート テンプレート フレンドを使用してメソッドを生成します。 私はよく...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。