PHPの単純な静的ページ生成プロセス
1. 使用される関連技術キーワード: PHP、Apache、
Ob シリーズ関数バッファ
ユーザーは、記事が存在するかどうかを確認するために url?id=x リクエストを送信します
(1) 存在する場合は、直接アクセスします。対応する HTML ページ。
(2) PHP を介してデータベース データを読み取ることはなく、HTML ファイルを生成し、指定されたディレクトリに保存します。
3. 実装方法:
(1) アドレス書き換えは、Apahce の mod_rewrite モジュールの RewriteRule 命令を使用して書き換えを実装します (mod_rewrite の有効化と簡単なルールについては、このブログの別の記事を参照してください http://こんにちは。baidu.com/alex_wang5...0346ffb3fb952e.html)。
(2) 記事が存在するかどうかを確認します。Apahce の mod_rewrite モジュールの RewriteCond 命令を使用します。
(3) HTML ファイルを生成します。
取得したバッファーの内容を指定された HTMl ファイルに書き込みます。
4. コード内の .htaccess ファイルの内容
/Test ディレクトリ:
RewriteEngine On
RewriteRule ^index.html$ /news.php [L ]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^html/news_([0-9] ).html$ getnews.php?id=$1 [L]
ニュースへのアクセス。 php 2 番目の文 RewriteRule ^index.html$ Test/news.php [L] は localhost/Test/index.html
news.php ============ を通じて実装されます=================> news.php には記事タイトルのリンクがリストされます。
コードをコピー
コードは次のとおりです:header("Content-Type: text /html; charset=gbk"); //文字化けを防ぐため
mysql_connect("localhost","root","");
mysql_query('SET NAMES gbk'); //使用される gbk エンコーディング私のデータベースによるので、実際の状況に応じて調整してください
mysql_select_db("test");
$sql = "Select `id`,`title` FROM `arc` order by `id` DESC" ;
$rs = mysql_query($sql);
while($row = mysql_fetch_array($rs) ){
echo "
";
}
?>
例: php 静的ページ実装
リンクをクリックして http://localhost/Test/html/news_3.html
RewriteCond %{REQUEST_FILENAME} !-s
:
RewriteCond は「指示された書き換えの発生条件」です。 REQUEST_FILENAME このパラメータは「クライアントが要求したファイル名」です。
'-s' (空ではない通常のファイル [サイズ]) 指定されたファイルが存在し、サイズが 0 より大きい通常のファイルであるかどうかをテストします。一致条件の反転を表します。
つまり、RewriteCond という文は、要求されたリンクが存在しない場合、次の RewriteRule ルールが実行されることを意味します。
そのため、要求された news_3.html が存在しない場合、アドレスは getnews.php?id=3 に書き換えられて処理されます (そうでない場合、news_3.html が存在する場合は、HTML ファイルが直接ロードされます)。
getnews.php ===================>機能: パラメータ送信の整合性を判断し、対応するファイルを呼び出して HTML ファイルを生成します。
コードをコピー
コードは次のとおりです: コードをコピー コード以下のように:
$id =$_GET['id'];
$root =& $_SERVER['DOCUMENT_ROOT'];
$filename = "news_".$ id.".html";
$file = $root."/Test/html/".$filename
ob_start();
include($root."/Test/newsDetail.php") );
file_put_contents($file,ob_get_contents());
newsDetail.php ========= ==========> データベースからデータを読み取り、getnews.php によってキャプチャされたニュース コンテンツを生成します
if( isset($_GET['id'] ) ){
$id = & $_GET['id'];
}else{
header("場所: http://127.0.0.1/lean/Test/html/news_failed.html" ) ;
exit();
}
mysql_connect("localhost","root","");
mysql_select_db("テスト") ) ;
$id =$_GET['id'];
$sql = "`id`=$id の場合、`news` を選択します。 ( $sql);
while($row = mysql_fetch_array($rs) ){
echo $row['news']
}
?> > これにより、news_article ID.html という名前の HTML ファイルが /Test/html ディレクトリに生成されます。
追記: 最初は、対応する HTML ページが存在するかどうかを判断するときに、Apache の RewriteCond の代わりに PHP の組み込み file_exists() 判断が使用されます。つまり、RewriteCond %{REQUEST_FILENAME} !-s はありません。実現可能に思えますが、その結果、「循環リダイレクト」問題が発生します。
news_3.html が存在しない場合は、getnews.php を使用して news_3.html を生成する必要があります。生成が完了したら、news_3.html にリダイレクトする必要があるため、別の mod_rewrite リクエストが生成されて news_3 を書き換えます。 .html を getnews.php に変換します。 ?id=3 これにより、無限ループが形成されます。したがって、ファイルの存在判定は RewriteCond に引き継がれ、指定された html ファイルが存在しない場合にのみ書き換えルールが有効になります。このようにして、循環リダイレクトの問題は解消されます。
最初に newsDetail.php を開くために fopen を使用しませんでした。次に、生成されたコンテンツを HTML ファイルに fwrite し、次に静的ページを出力するために include しました。その後、fhjr999 のリマインダーにより、getnews.php に newDetail.php をインクルードし、生成されたコンテンツを ob シリーズ関数を通じてバッファーに入れてから、HTML ファイルを生成するように変更されました。 obの効率は前者の約20倍です。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)
