ホームページ バックエンド開発 PHPチュートリアル Codeigniter による静的ページの生成_PHP チュートリアル

Codeigniter による静的ページの生成_PHP チュートリアル

Jul 14, 2016 am 10:09 AM
codeigniter 使用 生成する 単純 フォーラム 読む 静的 ページ

CI を使用して静的ページを生成するのは、実際には非常に簡単です。フォーラムで述べられているように、ページ内のデータを読み取り、HTML ファイルに書き込み、最後に HTML ファイルを表示します。

[php]
クラス MY_Loader は CI_Loader を拡張します {
パブリック関数 m_view($view, $vars = array(), $return = FALSE){
return $this->_m_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
}
保護された関数 _m_ci_load($_ci_data){
out out out out out out out Out Out Out Out Out Out Out Out out
($_ci_ext==='')?
foreach ($this->ci_view_paths as $_ci_view_file => $cascade){
$_ci_path = $_ci_view_file.$_ci_file; H $ _ci_html_path = $ _ ci_view_file. $ _ Ci_html_file // 静的ページを生成するパス
$file_exists = TRUE;
休憩。
}
}
}
……
//ここ
if(config_item("html")===TRUE){//静的ページの生成を有効にするかどうか
$_html_file=@fopen($_ci_html_path,'r');// .html ファイルを作成
$buffer = ob_get_contents();
@ob_end_clean(); _ If (! $ _ Html_file || (@Filesize ($ _ ci_html_path)! = Strlen ($buffer)) {//
$_html_file=@fopen($_ci_html_path,'w');
flock($_html_file, LOCK_EX); (Fwrite ($ _ html_file, $ バッファ);
flock($_html_file, LOCK_UN);
fclose($_html_file);
}
//echo(filesize($_ci_html_path)."-".strlen($buffer));
インクルード($_ci_html_path);
}
}
}
クラス MY_Loader は CI_Loader を拡張します {
パブリック関数 m_view($view, $vars = array(), $return = FALSE){
return $this->_m_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
}
保護された関数 _m_ci_load($_ci_data){
.....
$_ci_html_file=($_ci_ext==='')? $_ci_view.".html" : $_ci_view;//これ、静态页面の文書名
を生成
foreach ($this->ci_view_paths as $_ci_view_file => $cascade){
if (file_exists($_ci_view_file.$_ci_file)){
$_ci_path = $_ci_view_file.$_ci_file;
$_ci_html_path=$_ci_view_file.$_ci_html_file;// 静态页面の経路生成
$file_exists = TRUE;
休憩;
}
......
}
}
......
//在这
if(config_item("html")===TRUE){//否か开启生成静态页面
$_html_file=@fopen($_ci_html_path,'r');//创建.html文件
$buffer = ob_get_contents();
@ob_end_clean();
if(!$_html_file||(@filesize($_ci_html_path)!=​​strlen($buffer))){ //如果文件不存在または文件已更变
$_html_file=@fopen($_ci_html_path,'w');
flock($_html_file, LOCK_EX);
fwrite($_html_file, $buffer);                  
flock($_html_file, LOCK_UN);
fclose($_html_file);
}
//echo(filesize($_ci_html_path)."-".strlen($buffer));
include($_ci_html_path);
}
......
}
}调用
[html]
$this->load->m_view('login',$datas);  
$this->load->m_view('login',$datas);
HTML文書を生成するかどうか
$config["html"] = TRUE;
全代码如下
[php]
クラス MY_Loader は CI_Loader を拡張します {
public function m_view($view, $vars = array(), $return = FALSE){
return $this->_m_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));  
}
保護された関数 _m_ci_load($_ci_data){
// デフォルトのデータ変数を設定します
foreach (array('_ci_view', '_ci_vars', '_ci_path', '_ci_return') as $_ci_val){
$$_ci_val = isset($_ci_data[$_ci_val]) $_ci_data[$_ci_val] : FALSE;
}
$file_exists = FALSE;
// リクエストされたファイルへのパスを設定します
if (is_string($_ci_path) && $_ci_path !== ''){
$_ci_x =explode('/', $_ci_path);//ある文字列を使用して別の文字列を分割します F $ _ci_file = end ($ _ ci_x) // 配列の内部ポインタを最後のユニットにポイントします
;
}その他{
$_ci_ext = pathinfo($_ci_view, PATHINFO_EXTENSION);// ファイル パス情報を返します
$_ci_file = ($_ci_ext === '') $_ci_view.'.php' : $_ci_view;
($_ci_ext==='')?
foreach ($this->ci_view_paths as $_ci_view_file => $cascade){
$_ci_path = $_ci_view_file.$_ci_file; H $ _ci_html_path = $ _ ci_view_file. $ _ Ci_html_file // 静的ページを生成するパス
$file_exists = TRUE;
休憩。
}
if ( ! $cascade){
休憩。
}
}
}
if ( ! $file_exists && ! file_exists($_ci_path))
show_error('要求されたファイルをロードできません: '.$_ci_file);
}
// これにより、$this->load を使用してロードされたものはすべて許可されます (ビュー、ファイルなど)
// コントローラーおよびモデル関数内からアクセス可能になります。
$_ci_CI =& get_instance();
foreach (get_object_vars($_ci_CI) as $_ci_key => $_ci_var)
if ( ! isset($this->$_ci_key))
$this->$_ci_key =& $_ci_CI->$_ci_key;
}
}
/*
* 変数を抽出してキャッシュする
*
* 専用の $this->load->vars() を使用して変数を設定することもできます
* 関数、またはこの関数の 2 番目のパラメーターを介して
をマージします。
* 2 つのタイプをキャッシュし、
内に埋め込まれたビューがキャッシュされるようにします。
* 他のビューもこれらの変数にアクセスできます。
if (is_array($_ci_vars))
$this->_ci_cached_vars = array_merge($this->_ci_cached_vars, $_ci_vars);  
}
extract($this->_ci_cached_vars);  
/*
* 出力をバッファリングします
*
* 出力をバッファリングする理由は次の 2 つです:
* 1. スピード。速度が大幅に向上します。 
* 2. 最終的にレンダリングされたテンプレートを
で後処理できるようにする
* 出力クラス。なぜ後処理が必要なのでしょうか?まず、
* ページの読み込み経過時間を表示するため。できない限り
* コンテンツがブラウザに送信される直前にインターセプトし、
* その後、タイマーを停止すると正確ではなくなります。 
*/
ob_start();  
// PHP インストールが短いタグをサポートしていない場合は、
// 短いタグを変更して、小さな文字列の置換を行います
// 標準の PHP echo ステートメントに変換します。   
if ( ! is_php('5.4') && (bool) @ini_get('short_open_tag') === FALSE
&& config_item('rewrite_short_tags') === TRUE && function_usable('eval')
)
{
echo eval('?>'.preg_replace('/;*s*?>/', '; ?>', str_replace('
}
その他
{
include($_ci_path); // include() と include_once() では、同じ名前の複数のビューが許可されます
}
log_message('debug', 'ロードされたファイル: '.$_ci_path);  
// 要求された場合はファイル データを返します
if ($_ci_return === TRUE)
{
$buffer = ob_get_contents();  
@ob_end_clean();  
$buffer を返します。  
}
//在这
if(config_item("html")===TRUE){//否か开启生成静态页面
$_html_file=@fopen($_ci_html_path,'r');//创建.html文件
$buffer = ob_get_contents();  
@ob_end_clean();  
if(!$_html_file||(@filesize($_ci_html_path)!=​​strlen($buffer))){
$_html_file=@fopen($_ci_html_path,'w');  
flock($_html_file, LOCK_EX);  
fwrite($_html_file, $buffer);                    
flock($_html_file, LOCK_UN);  
fclose($_html_file);  
}
//echo(filesize($_ci_html_path)."-".strlen($buffer));   
include($_ci_html_path);  
}
/*
* バッファーをフラッシュします... それともフラッシャーをバフしますか? 
*
* ビューを
内でネストできるようにするため
* 他のビュー、いつでもコンテンツをフラッシュして戻す必要があります
* 出力バッファリングの最初のレベルを超えているため、
* 最初にインクルードされたものによって正しく表示され、インクルードされます
* テンプレートとそれ以降のテンプレート。おい! 
*/
if (ob_get_level() > $this->_ci_ob_level + 1)
{
ob_end_flush();  
}
その他
{
$_ci_CI->output->append_output(ob_get_contents());  
@ob_end_clean();  
}
}
}
クラス MY_Loader は CI_Loader を拡張します {
public function m_view($view, $vars = array(), $return = FALSE){
return $this->_m_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
}
保護された関数 _m_ci_load($_ci_data){
// デフォルトのデータ変数を設定します
foreach (array('_ci_view', '_ci_vars', '_ci_path', '_ci_return') as $_ci_val){
$$_ci_val = isset($_ci_data[$_ci_val]) ? $_ci_data[$_ci_val] : FALSE;
}
$file_exists = FALSE;
// リクエストされたファイルへのパスを設定します
if (is_string($_ci_path) && $_ci_path !== ''){
$_ci_x =explode('/', $_ci_path);//一个字符串分割另一字符串を使用します
$_ci_file = end($_ci_x);// 将数組の内部指针指向 最後の一单元
}その他{
$_ci_ext = pathinfo($_ci_view, PATHINFO_EXTENSION);// 文件路径の情報を返します
$_ci_file = ($_ci_ext === '') ? $_ci_view.'.php' : $_ci_view;
$_ci_html_file=($_ci_ext==='')? $_ci_view.".html" : $_ci_view;//これ、静态页面の文書名を生成します
foreach ($this->ci_view_paths as $_ci_view_file => $cascade){
if (file_exists($_ci_view_file.$_ci_file)){
$_ci_path = $_ci_view_file.$_ci_file;
$_ci_html_path=$_ci_view_file.$_ci_html_file;// 静态页面の経路生成
$file_exists = TRUE;
休憩;
}
if ( ! $cascade){
休憩;
}
}
}
if ( ! $file_exists && ! file_exists($_ci_path))
{
show_error('要求されたファイルをロードできません: '.$_ci_file);
}
// これにより、$this->load を使用してロードされたものはすべて許可されます (ビュー、ファイルなど)
// コントローラーおよびモデル関数内からアクセスできるようになります。
$_ci_CI =& get_instance();
foreach (get_object_vars($_ci_CI) as $_ci_key => $_ci_var)
{
if ( ! isset($this->$_ci_key))
{
$this->$_ci_key =& $_ci_CI->$_ci_key;
}
}
/*
* 変数を抽出してキャッシュします
*
* 専用の $this->load->vars() を使用して変数を設定することもできます
* 関数、またはこの関数の 2 番目のパラメーターを使用します。合併します
* 2 つのタイプをキャッシュし、その中に埋め込まれたビューが保存されるようにします
* 他のビューはこれらの変数にアクセスできます。
*/
if (is_array($_ci_vars))
{
$this->_ci_cached_vars = array_merge($this->_ci_cached_vars, $_ci_vars);
}
extract($this->_ci_cached_vars);
/*
* 出力をバッファリングします
*
* 出力をバッファリングする理由は 2 つあります:
* 1. スピード。速度が大幅に向上します。
* 2. 最終的にレンダリングされたテンプレートを
で後処理できるようにする
* 出力クラス。なぜ後処理が必要なのでしょうか?まず、
* ページの読み込み経過時間を表示するため。できなければ
* コンテンツがブラウザに送信される直前にインターセプトし、
* その場合はタイマーを停止してください。正確ではありません。
*/
ob_start();
// PHP インストールが短いタグをサポートしていない場合は、
// 短いタグを変更して、小さな文字列の置換を行います
// 標準の PHP echo ステートメントに変換します。
if ( ! is_php('5.4') && (bool) @ini_get('short_open_tag') === FALSE
&& config_item('rewrite_short_tags') === TRUE && function_usable('eval')
)
{
echo eval('?>'.preg_replace('/;*s*?>/', '; ?>', str_replace('
}
それ以外
{
include($_ci_path); // include() と include_once() では、同じ名前の複数のビューが許可されます
}
log_message('debug', 'ロードされたファイル: '.$_ci_path);
// 要求された場合はファイル データを返します
if ($_ci_return === TRUE)
{
$buffer = ob_get_contents();
@ob_end_clean();
$buffer を返す;
}
//在这
if(config_item("html")===TRUE){//否か开启生成静态页面
$_html_file=@fopen($_ci_html_path,'r');//创建.html文件
$buffer = ob_get_contents();
@ob_end_clean();
if(!$_html_file||(@filesize($_ci_html_path)!=​​strlen($buffer))){
$_html_file=@fopen($_ci_html_path,'w');
flock($_html_file, LOCK_EX);
fwrite($_html_file, $buffer);                  
flock($_html_file, LOCK_UN);
fclose($_html_file);
}
//echo(filesize($_ci_html_path)."-".strlen($buffer));
include($_ci_html_path);
}
/*
* バッファをフラッシュします... それともフラッシャーをバフしますか?
*
* ビューをネストできるようにするため
* 他のビューでは、いつでもコンテンツをフラッシュして戻す必要があります
* 出力バッファリングの最初のレベルを超えているため、
*最初にインクルードすることで正しく表示されインクルードされます
* テンプレートとそれ以降のテンプレート。おい!
*/ www.2cto.com
if (ob_get_level() > $this->_ci_ob_level + 1)
{
ob_end_flush();
}
それ以外
{
$_ci_CI->output->append_output(ob_get_contents());
@ob_end_clean();
}
}
}

www.bkjia.com本当http://www.bkjia.com/PHPjc/477728.html技術記事 CI を使用して静的なトップ セクションを生成します。これは非常に単純で、トップ セクション内のデータを読み出し、html ファイルに再書き込みし、最後にこの html ファイルが実行、承認、アップコードを表示します。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

CrystalDiskmarkとはどのようなソフトウェアですか? -crystaldiskmarkの使い方は? CrystalDiskmarkとはどのようなソフトウェアですか? -crystaldiskmarkの使い方は? Mar 18, 2024 pm 02:58 PM

CrystalDiskMark は、シーケンシャルおよびランダムの読み取り/書き込み速度を迅速に測定する、ハード ドライブ用の小型 HDD ベンチマーク ツールです。次に、編集者が CrystalDiskMark と Crystaldiskmark の使用方法を紹介します。 1. CrystalDiskMark の概要 CrystalDiskMark は、機械式ハード ドライブとソリッド ステート ドライブ (SSD) の読み取りおよび書き込み速度とパフォーマンスを評価するために広く使用されているディスク パフォーマンス テスト ツールです。 ). ランダム I/O パフォーマンス。これは無料の Windows アプリケーションで、使いやすいインターフェイスとハード ドライブのパフォーマンスのさまざまな側面を評価するためのさまざまなテスト モードを提供し、ハードウェアのレビューで広く使用されています。

foob​​ar2000のダウンロード方法は? -foobar2000の使い方 foob​​ar2000のダウンロード方法は? -foobar2000の使い方 Mar 18, 2024 am 10:58 AM

foob​​ar2000 は、音楽リソースをいつでも聴くことができるソフトウェアです。あらゆる種類の音楽をロスレス音質で提供します。音楽プレーヤーの強化版により、より包括的で快適な音楽体験を得ることができます。その設計コンセプトは、高度なオーディオをコンピュータ上で再生可能 デバイスを携帯電話に移植し、より便利で効率的な音楽再生体験を提供 シンプルでわかりやすく、使いやすいインターフェースデザイン 過度な装飾や煩雑な操作を排除したミニマルなデザインスタイルを採用また、さまざまなスキンとテーマをサポートし、自分の好みに合わせて設定をカスタマイズし、複数のオーディオ形式の再生をサポートする専用の音楽プレーヤーを作成します。過度の音量による聴覚障害を避けるために、自分の聴覚の状態に合わせて調整してください。次は私がお手伝いさせてください

Baidu Netdisk アプリの使用方法 Baidu Netdisk アプリの使用方法 Mar 27, 2024 pm 06:46 PM

クラウド ストレージは今日、私たちの日常生活や仕事に欠かせない部分になっています。中国有数のクラウド ストレージ サービスの 1 つである Baidu Netdisk は、強力なストレージ機能、効率的な伝送速度、便利な操作体験により多くのユーザーの支持を得ています。また、重要なファイルのバックアップ、情報の共有、オンラインでのビデオの視聴、または音楽の聴きたい場合でも、Baidu Cloud Disk はニーズを満たすことができます。しかし、Baidu Netdisk アプリの具体的な使用方法を理解していないユーザーも多いため、このチュートリアルでは Baidu Netdisk アプリの使用方法を詳しく紹介します。まだ混乱しているユーザーは、この記事に従って詳細を学ぶことができます。 Baidu Cloud Network Disk の使用方法: 1. インストール まず、Baidu Cloud ソフトウェアをダウンロードしてインストールするときに、カスタム インストール オプションを選択してください。

NetEase メールボックス マスターの使用方法 NetEase メールボックス マスターの使用方法 Mar 27, 2024 pm 05:32 PM

NetEase Mailbox は、中国のネットユーザーに広く使用されている電子メール アドレスとして、その安定した効率的なサービスで常にユーザーの信頼を獲得してきました。 NetEase Mailbox Master は、携帯電話ユーザー向けに特別に作成された電子メール ソフトウェアで、電子メールの送受信プロセスが大幅に簡素化され、電子メールの処理がより便利になります。 NetEase Mailbox Master の使い方と具体的な機能について、以下ではこのサイトの編集者が詳しく紹介しますので、お役に立てれば幸いです。まず、モバイル アプリ ストアで NetEase Mailbox Master アプリを検索してダウンロードします。 App Store または Baidu Mobile Assistant で「Ne​​tEase Mailbox Master」を検索し、画面の指示に従ってインストールします。ダウンロードとインストールが完了したら、NetEase の電子メール アカウントを開いてログインします。ログイン インターフェイスは次のとおりです。

BTCC チュートリアル: BTCC 取引所で MetaMask ウォレットをバインドして使用する方法は? BTCC チュートリアル: BTCC 取引所で MetaMask ウォレットをバインドして使用する方法は? Apr 26, 2024 am 09:40 AM

MetaMask (中国語ではリトル フォックス ウォレットとも呼ばれます) は、無料で評判の高い暗号化ウォレット ソフトウェアです。現在、BTCC は MetaMask ウォレットへのバインドをサポートしており、バインド後は MetaMask ウォレットを使用してすぐにログイン、値の保存、コインの購入などが可能になり、初回バインドで 20 USDT のトライアル ボーナスも獲得できます。 BTCCMetaMask ウォレットのチュートリアルでは、MetaMask の登録方法と使用方法、および BTCC で Little Fox ウォレットをバインドして使用する方法を詳しく紹介します。メタマスクウォレットとは何ですか? 3,000 万人を超えるユーザーを抱える MetaMask Little Fox ウォレットは、現在最も人気のある暗号通貨ウォレットの 1 つです。無料で使用でき、拡張機能としてネットワーク上にインストールできます。

iOS 17.4の新しい高度な機能「盗難デバイス保護」の使い方を教えます iOS 17.4の新しい高度な機能「盗難デバイス保護」の使い方を教えます Mar 10, 2024 pm 04:34 PM

Appleは火曜日にiOS 17.4アップデートを公開し、iPhoneに多数の新機能と修正をもたらした。このアップデートには新しい絵文字が含まれており、EU ユーザーは他のアプリ ストアから絵文字をダウンロードすることもできます。さらに、このアップデートでは iPhone のセキュリティ制御も強化され、より多くの「盗難デバイス保護」設定オプションが導入され、ユーザーにより多くの選択肢と保護が提供されます。 「iOS17.3では、「盗難デバイス保護」機能が初めて導入され、ユーザーの機密情報のセキュリティが強化されています。ユーザーが自宅やその他の身近な場所から離れている場合、この機能ではユーザーは最初に生体認証情報を入力する必要がありますApple ID パスワードの変更や盗難デバイス保護の無効化など、特定のデータにアクセスして変更するには、情報を再度入力する必要があります。

Xiaomi Autoアプリの使い方 Xiaomi Autoアプリの使い方 Apr 01, 2024 pm 09:19 PM

Xiaomi 車用ソフトウェアは、車のリモート制御機能を提供し、ユーザーが携帯電話やコンピュータを介して車両のドアや窓の開閉、エンジンの始動、車両のエアコンやオーディオの制御など、車両を遠隔制御できるようにします。このソフトウェアの使い方や内容について、一緒に学びましょう。 Xiaomi Auto アプリの機能と使用方法の包括的なリスト 1. Xiaomi Auto アプリは 3 月 25 日に Apple AppStore で公開され、Android スマートフォンのアプリストアからダウンロードできるようになりました; 車の購入: 主要なハイライトと技術パラメータについて学びますXiaomi Auto のサービスを利用して、試乗の予約をし、Xiaomi 車の設定と注文を行い、車の受け取りの To-Do 項目のオンライン処理をサポートします。 3. コミュニティ: Xiaomi Auto ブランド情報を理解し、車の経験を交換し、素晴らしいカーライフを共有します; 4. 車の制御: 携帯電話はリモコン、遠隔制御、リアルタイム セキュリティ、簡単です。

リトル ブラック ボックス CDKey の使用方法 リトル ブラック ボックス CDKey の使用方法 Mar 12, 2024 pm 07:34 PM

Little Black Box cdkey の使用方法 簡単に言うと、Steam プラットフォーム上のゲームを Little Black Box から直接購入でき、購入が成功すると CDK 引き換えコードを受け取ります。次に、Steam モールでこの引き換えコードを使用して、対応するゲームを購入します。小さな黒いボックスの CD キーの使い方を知らない友人も多いと思いますが、以下に引き換え手順を詳しく説明しますので、お役に立てれば幸いです。 Little Black Box cdkey の使用方法 1. まず、Little Black Box ゲームの購入後に取得した CDK 引き換えコードをコピーします。 2. 次に、Steam プラットフォームを起動します。 3. 左上隅のメニューで「ゲーム」オプションをクリックします。 4. 新しいメニューで「Steam で製品をアクティベートする」を見つけてクリックします。 5. ポップアップ インターフェイスで直接 [次へ] をクリックします。 6. 小さなブラックボックスを購入する

See all articles