ホームページ php教程 php手册 初心者向けに特別に書かれたsmartyと組み合わせたクラス ページ 1/3

初心者向けに特別に書かれたsmartyと組み合わせたクラス ページ 1/3

Jun 13, 2016 pm 12:36 PM
smarty 初心者 親切 組み合わせる 招待する

smarty と組み合わせて使用​​する初心者向けに特別に作成されたクラスです。貴重なフィードバックをお寄せください。


これは、初心者 (および私自身) のために作成されたクラスです。 Smarty との組み合わせは未完成です はい、今公開するのは初心者にすぐに使ってもらうことが目的ではないので、注釈はあまり詳しく書いていません
専門家の皆様にご意見をいただければ幸いです。それを改善するために最善を尽くしてください。
まず最初に断っておきますが、これを書く目的は自分自身を訓練することです。今では似たようなクラスがたくさんあることは承知していますが、それでも私は一つを書くことにしました。
そのため、閲覧する際はお手柔らかにお願いします。

ファイルもパッケージ化してアップロードしましたので、ダウンロードしてコメントをお願いします。ご不明な点がございましたら、直接お問い合わせください

現在、このクラスには次の関数が含まれています ($m = new Machine_m() と仮定した使用例)
[データベース]
現在 MYSQL とデータベースにアクセスします
設定は config.php ファイルを参照します
使用: $m->send_query (SQL ステートメント) //
$m->select_query (SQL ステートメント、リソースを返すかどうか、デフォルトは false で、2 次元配列を返します )

[エラー処理]
システムエラーとユーザーエラーに分かれています
システムエラー:
$this->sys_err( '設定エラー、構成設定ファイルを確認してください', 'die ');
最初のパラメータは、/lib/error/system.err にエラー情報を記録します。2 番目のパラメータは、処理方法 (keep または die) です。ブラウザのプロンプトを変更する必要がある場合は、デフォルトで「申し訳ありませんが、このサイトでシステム エラーが発生しました。後でもう一度お試しください。
ユーザー エラー:
$m->」に設定することもできます。 ;user_err( '登録システムは閉じています', 'die' , $_SERVER['HTTP_REFERER'] );
最初のパラメータはブラウザに表示されるプロンプト、2 番目のパラメータは処理方法 (keep または die)、 3 番目のパラメータはジャンプ ページです。エラー メッセージがある場合は、4 番目のパラメータを設定して、エラー メッセージ
を /lib/error/user.err に記録することもできます。設定されていない場合、デフォルトでは保存されません。

ブラウザ側のエラー プロンプトは、デフォルトで /lib/error/ にある err_page.htm テンプレート ファイルを呼び出します。独自のエラー テンプレート ファイルを設定して、$m->err_page= でロードすることもできます。 。

[静的生成]
たった 1 行で静的ページを自動生成し、ジャンプ時に静的ページの有効期限を設定できます
(まだ完全に静的ではなく、より複雑です)現時点では統合はありません。完全な静的を実現したい場合は、私の create_html 関数とテキスト操作シリーズの関数を組み合わせて実現できます。
使用法:
$m->create_html (テンプレート ファイル、静的)出力パス、出力ファイル名);
Jump:
$m->goto_html();
このパラメータを指定する目的は、デフォルトでは現在の PHP ファイルのファイル名です。必要な場合に静的ページングを使用するには、このパラメータ設定

[2 次元配列の並べ替え (推奨)]
を使用して、次のように 2 次元配列を並べ替えることができます。 、フィールド b で降順に並べます。
使用法:
次のように配列を設定します: $x = array( array('name'=>'machine_马', 'age'=>23), array('name'=>'tom ',age=>28),... )
次に、この配列を名前の昇順で並べ替え、次に年齢の降順で並べ替える必要があります
使用法は m_sort($x,'name',SORT_ASC, 'age',SORT_DESC)

[動的ロード]
使用頻度の低い関数については、個人的にはリソースを節約できると考えているロード方法を使用します。
たとえば、m_sort 関数を使用したい場合、この関数はデフォルトではロードされません。
次のようにロードする必要があります: $m->load_func('m_sort')
その後、次のようにできます。 m_sort 関数を使用します

[Paging]
ここでは、最初にクラスを作成し、それを調整するための関数を作成しました。使うと便利
使用方法: m_page (データ項目数、現在のページ番号、各ページの行数、表示するジャンプリンクの数)
関数は配列を返します: array(
'rows' => 各ページに表示する行数,
'prve' => 前のページのページ番号 ,//いわゆるラージページは、前の 7 ページと次の 7 ページのようなジャンプです
'next' => 次の大きいページのページ番号、
'pages' => 合計ページ数、
'start' => SQL クエリの開始レコードの数、
'count' => レコード数、
'links' => リンク ページ番号、 // 合計 13 ページある場合、リンク 番号は 7 で、現在 2 番目に大きいページにあります。 Output array(8,9,10,11,12,13)​​
'current_page' => 現在のページ番号
);

[検証フォーム]
次のフォームを書きます事前に関数クラスに検証する必要があります。
使用方法: この関数は次のように変更する必要があります。あなた自身のニーズ

[クロスサイト攻撃の防止]
この関数は関数

[中国の傍受機能]
にも書かれています。これは私が書いたものではありません。

[ファイルのアップロード]
m_up_file($_FILES, アップロードパス, ファイルタイプ, サイズ制限)
アップロードパスは次のように設定できます。 1: フォルダーパスを直接書きます。 2 :array('gif'=>'file/gif','jpg'=>'file=>jpg')、gif ファイルが自動的に file/gif フォルダーに配置されるように、jpg ファイルを次の場所に置きますファイル/jpg フォルダー
ファイルの種類: 書き込み方法 1:'jpg'、書き込み方法 2:array('jpg','jpeg','gif')
Return array( 'arr' => Arrayアップロードされたファイルの数、'err_msg' => アップロード中のエラー メッセージ、'num' => 成功したアップロードの数)

[テキスト操作 (推奨)]
このような文字列があるとします。 str="Hellophpchina";
次のように変更できます $new_str=m_txt_replace('content','machine_马', $str);
$new_str の値は「Hellomachine_马」になります。
その他の関数: m_txt_add 、m_txt_delete、m_txt_get も同様なので、自分で参照できます。

注: これは、静的ページを生成した後に変更する方法です。
6to23 を参照して、なぜ彼が 1 つの投稿に非常に多くの返信を投稿し、それが非常に速いのかを考えることができます。
答え: その返信はデータベースに入力されず、静的ファイルに直接書き込まれ、その後、上記と同様の方法で変更します。彼のソース コードを見て

現在、上記の機能は基本的に実装されています
次に、

[画像処理]
[UBB コード出力]

など。その他の一般的に使用される機能

専門家の方にもっと意見をいただければ幸いです
メイン カテゴリ:

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



session_cache_limiter( 'private,must-revalidate');
session_start();

if ( !define( 'THIS_DIR' ) )
{
die( 'システム エラー: パス定数がありません' );
}
if ( @!include_once(THIS_DIR . 'lib/smarty/Smarty.class.php' ) )
{
die( 'システム エラー: Smarty ファイルが見つかりません' );
}

unset( $GLOBALS );
unset( $HTTP_ENV_VARS );
unset( $HTTP_GET_VARS );
unset( $HTTP_POST_VARS );

class Machine_m extends Smarty
{
// データベース リソース
private $conn;
// パス
private $the_dir
// 設定ファイル
private $ config = array();
private $config_url;
// 外部関数リスト
private $func_list = array();
private $func_list_url;
public $ err_page = 'lib/error/err_page.htm';
// 静的生成
public $html_cache = 'html';
public $html_cache_lifetime = 86400; // コンストラクター
public function __construct( $test = false )
{
// Smarty クラスの構築部分を保持します
$this->assign('SCRIPT_NAME', isset($_SERVER['SCRIPT_NAME']) ? $_SERVER['SCRIPT_NAME']
: @$GLOBALS['HTTP_SERVER_VARS']['SCRIPT_NAME']);

// これは machine_m の構築部分です
$this-> left_de リミッター = '<%';
$this->right_delimiter = '%>';
$this->the_DIR =
$this->config_url; this->the_dir}lib/config/config.php"; $this->config = $this->gt;parse_ini();
$this->func_list_url = "{$this->the_dir } lib/config/func_list.php";
$this->func_list = $this->gt;parse_func();
$this->state($test);
$this->gt ; load_func( array( 'm_addslashes', 'm_stripslashes' ) );
$this->connect();
}

// デストラクター
パブリック関数 __destruct()
{
}

// ウェブサイトのステータスを設定します。 function
private function state($test)
{
if ($test == true)
{
$ this->load_func( array('m_print_r', 'm_var_dump')); 🎜> }
else
$this->compile_check = false;
error_reporting(0)
}

// 設定ファイル関数
プライベート関数 parse_ini()
{
if ( !file_exists( $this->config_url ) )
{
, 'die' ); 存在する( 'user_name', $ config )
|| !array_key_exists( 'db_name) ', $config )
|| !array_key_exists( 'password', $config ) )
{ gt;sys_err( '設定エラー、設定設定ファイルを確認してください', 'die');
}

// parse function list function
private function parse_func()
{
if(!file_exists($ this-&gt; func_list_url))
; > $func_list を返します。 $func_name )
{
$this->include_file( $this->func_list[$func_name] );
}
🎜> $this->include_file( $this->func_list[$func] );

// 外部関数 include function
public function include_file( $file_url )
{ $file_url = $this->dir .$file_url
@$ok = include_once ( $file_url; );
if ( $ok != true )
{ }
}

// 設定ファイルのデコード関数 (データベースのユーザー名とパスワードをプレーンテキストで記録するのは安全ではありません)最初に暗号化してから復号化するのが最善です。この関数はオーバーロードできます)
protected function decode_config($config) {
return $config ( $this->config-> ;データベース ) ) {
ケース 'MYSQL' :
$this->connect_mysql();
ケース 'ACCESS' :
$this->connect_access();
Break;
デフォルト:
$this->sys_err(' データベースの種類が間違っています。このクラスは現在 MYSQL および ACCESS データベースのみをサポートしています' 'die');

の場合( $this ->conn != null ) 🎜> @$this-> ;conn = mysql_connect( ->config->ホスト名、$this->config->ユーザー名、$this-> config->password );
if ( $this->conn == false ) );
}
db = mysql_select_db( $this->config->db_name, $this ->conn ) ;
if ( $db == false )
{
$mysql_err = mysql_error();
$this->sys_err( "データ テーブルの接続に失敗しました。理由は: {{$mysql_err}}", 'die' );
}
}

// 连接ACCESSデータ库関数数
private function connect_access()
{
if ( $this ->コン!= null )
{
@odbc_close( $this->conn );
$this->conn = null;
}
$dsn = 'ドライバー=Microsoft Access ドライバー(*.mdb);dbq='. realpath( $this->the_dir . $this->config->db_name );
@$this->conn = odbc_connect( $dsn, $this- >config->user_name, $this->config->password );
if ( $this->conn == false )
{
@$odbc_err = odbc_errormsg( $これ->conn );
$this->sys_err( "ACCESS数架接続失败, 原因: {{$odbc_err}}", 'die' );
}
}

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

初心者向けにミスト ロック キングダムをプレイするためのヒント 初心者向けにミスト ロック キングダムをプレイするためのヒント Jan 28, 2024 pm 03:33 PM

ミストロック キングダムは、プレイヤーが Sons of Fire としてプレイして生き残り、探索できるオープンワールド ゲームです。このゲームは、アクション RPG チャレンジのユニークなエンターテイメントを組み合わせており、プレイヤーに無限の驚きと喜びをもたらします。ゲームでは、プレイヤーはリソース、環境、武器などを探索できます。初心者プレイヤーの中には、ゲームの始め方に興味がある人もいるかもしれません。この紹介と共有では、関連するスタート ガイドをいくつか提供します。フォグ ロック キングダムの初心者向けヒント: 瘴気に包まれた地域の危険度は異なります。探索プロセス中に、マップの新しいエリアが徐々にロック解除され、瘴気に包まれた地域の位置が確認できるようになります。マップは2色で区別されており、青色のエリアは短時間しか進入できず、キャラクターの能力レベルに応じて滞在可能時間も変化する。

GIGABYTE マザーボードでキーボード ブート機能を設定する方法 (GIGABYTE マザーボードでキーボード ブート モードを有効にする) GIGABYTE マザーボードでキーボード ブート機能を設定する方法 (GIGABYTE マザーボードでキーボード ブート モードを有効にする) Dec 31, 2023 pm 05:15 PM

Gigabyte のマザーボードでキーボード起動を設定する方法 まず、キーボード起動をサポートする必要がある場合は、PS2 キーボードである必要があります。 !設定手順は次のとおりです: ステップ 1: 起動後に Del または F2 を押して BIOS に入り、BIOS の Advanced (Advanced) モードに移動します 通常のマザーボードは、デフォルトでマザーボードの EZ (Easy) モードに入ります。 F7 を押してアドバンスト モードに切り替える必要があります。ROG シリーズ マザーボードはデフォルトで BIOS に入ります。アドバンスト モード (説明には簡体字中国語を使用します) ステップ 2: - [アドバンスト] - [アドバンスト パワー マネージメント (APM)] を選択します。 ステップ 3 : オプション [PS2 キーボードによるウェイクアップ] を見つけます ステップ 4: このオプション デフォルトは無効です プルダウンすると、3 つの異なる設定オプションが表示されます: [スペースバー] を押してコンピューターの電源をオンにし、グループを押します

CS プレーヤーの第一選択: 推奨されるコンピューター構成 CS プレーヤーの第一選択: 推奨されるコンピューター構成 Jan 02, 2024 pm 04:26 PM

1. プロセッサ コンピュータ構成を選択する場合、プロセッサは最も重要なコンポーネントの 1 つです。 CS などのゲームをプレイする場合、プロセッサーのパフォーマンスはゲームのスムーズさや応答速度に直接影響します。 Intel Core i5 または i7 シリーズ プロセッサを選択することをお勧めします。これらのプロセッサは、強力なマルチコア処理能力と高周波数を備え、CS の高い要件に簡単に対応できるためです。 2. グラフィックス カード グラフィックス カードは、ゲームのパフォーマンスを左右する重要な要素の 1 つです。 CSなどのシューティングゲームでは、グラフィックカードの性能がゲーム画面の鮮明さや滑らかさに直結します。優れたグラフィックス処理能力と高いフレームレート出力を備え、より優れたゲーム体験を提供できる NVIDIA GeForce GTX シリーズまたは AMD Radeon RX シリーズ グラフィックス カードを選択することをお勧めします。

アンカーポイントアドベント ノービス十中隊おすすめキャラクター アンカーポイントアドベント ノービス十中隊おすすめキャラクター Feb 20, 2024 pm 02:30 PM

「アンカーアライバル」は、高解像度の美少女 2D をテーマにした 3D ターン制カードゲームです。プレイヤーが探索して体験できる豊富でエキサイティングなキャラクターの組み合わせを提供します。高品質のラインナップの強力な組み合わせが数多くあります。新規プレイヤーは初心者にも気になる初心者向けの強力なキャラは何ですか? 初心者が10連ゴールドを獲得するための選択の参考を見てみましょう! アンカーポイント降臨は初心者向けの強力なキャラです。10連の最初のピックはアリスです。主に単体雷系爆発キャラで、出力も爆発力が高く、初心者にも優しいので選ぶのがオススメです。ゴールド10連は「アリス」+「アンテロープ」の組み合わせがおすすめ アリスはゴールドパイア属性を出力するのに最も適したキャラクターであり、初心者カードプールの他の2キャラクターと比べても少しも強いです。アリスはスペシャルをパスできる

バッチインデントの使い方を学ぶことは、PyCharm 初心者が習得しなければならないスキルです バッチインデントの使い方を学ぶことは、PyCharm 初心者が習得しなければならないスキルです Dec 30, 2023 pm 12:58 PM

PyCharm の初心者向けの必須スキル: バッチ インデントの使用をマスターするには、特定のコード サンプルが必要です。 概要: PyCharm は、開発者の効率向上に役立つ多くの実用的なツールと機能を提供する強力な Python 統合開発環境 (IDE) です。日常のコーディングプロセスでは、コードの形式を整然と美しく保つためにコードをインデントする必要があることがよくあります。 PyCharm が提供するバッチ インデント機能を使用すると、コードを迅速にバッチ インデントし、コーディング効率を向上させることができます。この記事では Py について説明します

マザーボード上のデジタルオーディオ出力インターフェイス - SPDIF OUT マザーボード上のデジタルオーディオ出力インターフェイス - SPDIF OUT Jan 14, 2024 pm 04:42 PM

マザーボード上の SPDIFOUT 接続線の順序 最近、ワイヤの配線順序に関する問題に遭遇しました。ネットで調べたところ、1、2、4がアウト、+5V、グラウンドに相当するという情報もあれば、1、2、4がアウト、グラウンド、+5Vに相当するという情報もありました。最善の方法は、マザーボードのマニュアルを確認することです。マニュアルが見つからない場合は、マルチメーターを使用して測定できます。最初にアースを見つけてから、残りの配線の順序を決定します。マザーボードの VDG 配線の接続方法 マザーボードの VDG 配線を接続するときは、VGA ケーブルの一端をモニターの VGA インターフェイスに差し込み、もう一端をコンピューターのグラフィックス カードの VGA インターフェイスに差し込む必要があります。マザーボードの VGA ポートに差し込まないよう注意してください。接続すると、次のことが可能になります

Glodon Software のコンピューター構成の推奨事項、Glodon Software のコンピューター構成要件 Glodon Software のコンピューター構成の推奨事項、Glodon Software のコンピューター構成要件 Jan 01, 2024 pm 12:52 PM

Glodon Software は建築情報化分野に注力するソフトウェア会社で、その製品は建築の設計、建設、運用のあらゆる側面で広く使用されています。 Glodon ソフトウェアは機能が複雑でデータ量が大きいため、高度なコンピュータ構成が必要です。この記事では、読者が適切なコンピューター構成プロセッサーを選択できるように、Glodon Software のコンピューター構成に関する推奨事項をさまざまな側面から詳しく説明します。Glodon Software は、アーキテクチャー設計、シミュレーション、その他の操作を実行するときに大量のデータの計算と処理を必要とします。プロセッサの方が高いです。 Intel i7 シリーズや AMD Ryzen シリーズなど、マルチコアの高周波数プロセッサを選択することをお勧めします。これらのプロセッサは強力なコンピューティング能力とマルチスレッド処理能力を備えており、Glodon ソフトウェアのニーズをより適切に満たすことができます。メモリ メモリがコンピューティングに影響を与えています

エンシェント クラウンの初心者ガイドとゲームプレイの紹介 エンシェント クラウンの初心者ガイドとゲームプレイの紹介 Feb 20, 2024 am 11:20 AM

Crown of the Ancients は、西洋の魔法の冒険をベースにした高品質で戦略的なカード モバイル ゲームです。ゲーム内では秘密の探索、遺跡の冒険、全国選手権などの特別なゲームプレイがあなたを待っています。したがって、初心者プレイヤーがこのゲームをすぐに始めたい場合は、初心者ガイドが不可欠です。今日、編集者が関連するガイドをお届けしますので、見てみましょう。エンシェントクラウンの初心者向けガイド、ゲームプレイ、エリア開放スタイルの概要: 1. ダイヤモンド蓄積フロー:すべてはダイヤモンドを蓄積することに集中しており、村を出てから熱心に働き始めます。メインの魔法の武器、ダイヤモンドを必要とする 3 つのフライホイール アクティビティなどを除いて、その他は無視されます。主にそのうちの 1 つに重点が置かれます。ヒーロー チャレンジには注意を払わないでください。できるだけ多く戦えます。 、そしてそれを強制しないでください。利点: ダイヤモンドを集めるためにいじるだけで、村を出た後、ダイヤモンドを使った最新のアクティビティにすぐにアクセスでき、新しいハードウェア ヒーロー シリーズを入手でき、ダイヤモンドは壊れます。

See all articles