ホームページ > バックエンド開発 > PHPチュートリアル > PHPで静的ページプログラムと原理分析を生成_PHPチュートリアル

PHPで静的ページプログラムと原理分析を生成_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:44:51
オリジナル
924 人が閲覧しました

サーバーの負荷を軽減し、SEO ウェブサイトを最適化するには、PHP で静的ページを生成するのが良い選択です。そのため、PHP で静的ページを生成する機能は、ほぼすべての PHP プログラマーが理解して習得する必要がある知識ポイントです。静的ページを生成するための PHP を紹介します。ページの原則を分析してみましょう。詳細を知りたい人は参照してください。

HTML生成の原理分析

生成するタグをテンプレート ファイルに書き込み、PHP を使用して指定されたタグを読み取って、置換するコンテンツに置き換えます。これは、現在の主流の dedecms システムでも行われていることです

静的ページコードを生成します。


テンプレート、つまりコンテンツ HTML ファイルはまだ設定されていません。例:

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

temp.html

{ title }

これは { file } ファイル配列のテンプレットです



テンプルテスト.php

$title = "Tomax インターナショナル テスト テンプレート";

$file = "TwoMax Inter テスト テンプルト、
作者:Matrix@Two_Max";

$fp = fopen("temp.html","r");

$content = fread ($fp,filesize ("temp.html"));

$content .= str_replace ("{ file }",$file,$content);

$content .= str_replace ("{ title }",$title,$content);

echo $content;

?>

このように静的ページを生成する非常に単純なphp関数が実装されていますが、アプリケーションの実装には実用的ではありません。 以下にデータベースから生成までの例を紹介します。

1. テスト データベース test を作成し、次のようにユーザー テーブルを作成します (いくつかのテスト データベース エントリを自分で挿入します)。

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

存在しない場合はテーブルを作成 `ニュース` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`タイトル` varchar(128) デフォルト NULL,
「コンテンツ」テキスト、
`time` int(10) デフォルト NULL,
主キー (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ;

2. 接続データファイルconn.phpを作成します

コードは次のとおりですコードをコピー $dsn = "mysql:host=localhost;dbname=test;";
$user = "ルート";
$password = "";
試してみてください{
$dbh = 新しい PDO($dsn,$user,$password);
}catch(PDOException $e){
echo "接続に失敗しました".$e->getMessage();
}
?>

3. ニュース リスト (news.php) を表示します。もちろん、リンクはまだ生成されていないことに注意してください。

コードは次のとおりですコードをコピー
記事を追加
<時間>
require_once "conn.php";
$sql = "ニュースから * を選択";
foreach($dbh->query($sql) as $row){
echo "{$row['title']}----記事を変更
";
}
?>
4. 記事ページの追加と変更:

コードは次のとおりですコードをコピー5. 静的ファイルの生成に使用されるページテンプレート template.html
// 変更されたコンテンツを取得します
if($_GET['id']){
require_once "conn.php";
$sql = "select * from news where id={$_GET['id']}";
$res = $dbh->query($sql)->fetch();
}
?>

タイトル:

コンテンツ:



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

{title}


{title} が {time} に公開されました
<時間>
{コンテンツ}





6.action.php は、もちろん静的ファイルの生成と更新に使用されます:

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


//フォーム処理操作
header("content-type:text/html;charset=utf-8");
require_once 'conn.php';
$title = $_POST['title'];
$content = $_POST['content'];
$time = time();
if($_POST['送信']=='追加'){
$sql = "ニュース値に挿入('','$title','$content',$time)";
$dbh->クエリ($sql);
$id = $dbh->lastInsertId();
$filename = "news_{$id}.html";
$fp_tmp = fopen("template.html","r");
$fp_html = fopen($filename,"w");
while(!feof($fp_tmp)){
$row = fgets($fp_tmp);
$row = replace($row,$title,$content,date('Y-m-d H:i:s',$time));
fwrite($fp_html,$row);
}
fclose($fp_tmp);
fclose($fp_html);
echo "正常に追加され、静的ファイルが生成されました";
}その他{
$sql = "ニュースセットの更新タイトル = $title、コンテンツ = $content、時刻 = $time where id ={$_POST['id']}";
$dbh->クエリ($sql);
$filename = "ニュース_{$_POST['id']}.html";
@unlink($filename);
$fp_tmp = fopen("template.html","r");
$fp_html = fopen($filename,"w");
while(!feof($fp_tmp)){
$row = fgets($fp_tmp);
$row = replace($row,$title,$content,date('Y-m-d H:i:s',$time));
fwrite($fp_html,$row);
}
fclose($fp_tmp);
fclose($fp_html);
echo "更新が成功し、静的ファイルを更新します";
}
//関数を一行ずつ置換
関数 replace($row,$title,$content,$time){
$row=str_replace("{title}",$title,$row);
$row=str_replace("{content}",$content,$row);
$row=str_replace("{time}",$time,$row);
$row を返します;
}
?>


このようにして、PHP を使用して静的ページを生成する完全なシステムが完成します。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/633071.html技術記事サーバー負荷を軽減し、SEO ウェブサイトを最適化するために、PHP で静的ページを生成することは良い選択であるため、PHP で静的ページを生成する機能は、ほぼすべての PHP プログラマーが理解し、習得する必要があります...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート