検索
ホームページphp教程php手册discuz 3.x コア ファイル class_core.php の分析

class_core.php は discuz 3.x のコア ファイルです。ほとんどすべての PHP スクリプトはこのファイルを参照してフォーラムのオペレーティング環境を初期化します。次の分析はバージョン 3.2 discuz を参照しています。

12-15行目: 定数定義
IN_DISCUZ: true //内部PHP参照ファイルが直接呼び出されないようにするために使用されます。
DISCUZ_ROOT: E:\project\discuz\ //フォーラムが配置されている物理パス
DISCUZ_CORE_DEBUG: false

17行目

: カスタム例外処理関数を設定します処理メソッドは次の場所にあります: core::handleException 静的メソッド。

行 24-30

: 自動ロード クラス関数を定義します。このメソッドは次の場所にあります: core::autoload($class) リーリー

このメソッドの簡単な説明: ./source/class/ フォルダー内のクラス ファイルを参照します。メソッドのパラメータはクラス名です。クラス名にアンダースコアが付いている場合、プレフィックスはサブフォルダー名、サフィックスはフォルダー名_クラス名になります。 ./source/class/subfolder/subfolder name_class の例: $class = "discuz_base" の場合、参照されるクラス ファイルは次のようになります: ./source/class/discuz/discuz_base.php 参照されるすべてのファイル名は core::imports 配列内に保存されます。

33 行目:

C::createapp() 静的メソッドを実行します。 リーリー

このメソッドは、フォーラムを初期化するメソッドであり、discuz_application クラス オブジェクトを作成し、シングル ファクトリ モードを使用します。 discuz_application クラスは、./source/class/discuz/discuz_application.php
にあります。

C::createapp() メソッドは discuz_application クラスのインスタンスを直接作成しませんが、静的メソッド discuz_application::instance() を実行することで間接的に作成します。

discuz_application::instance() 静的メソッド 新しいインスタンス、コンストラクターはフォーラム環境を初期化します。 (詳細については、discuz_application.php の分析を参照してください)。

さらに、ファイルの最後でクラス名が省略形で再定義されています: 行 208 ~ 209: C はコア クラス名を再定義し、DB は discuz_database クラス名を再定義します。

discuz_application.php 分析:

行 57-62:

コンストラクターは 4 つのメソッドを使用してフォーラムのパラメーターを初期化します: リーリー

(1)$this->_init_env():

環境変数の初期化行 87-93: 定数定義 MAGIC_QUOTES_GPC:true (バージョン 5.4 以降では false) ICONV_ENABLE:true MB_ENABLE:true EXT_OBGZIP:true TIMESTAMP: 現在時刻のカットオフと現在のタイムゾーンをグリニッジタイムゾーンに設定します

行 94:

コア関数ライブラリを引用します: ./cource/function/function_core.php。 参照が成功し、定数が定義されました: DISCUZ_CORE_FUNCTION: true

99-104行目:

ini:memory_limit:128Mを設定 106行目: クローラーの検出: IS_ROBOT: false

行 108-112:

不要なグローバル変数をクリアします。 リーリー

行 114-203:

グローバル変数を定義します: $_G、オブジェクト自体の var 属性もその参照を保存します。

(2)$this->_init_config()

初期化環境:

289 行目:

./conifg/config_global.php 構成パラメーター ファイルを引用します

行 299:

$_config['security']['authkey'] の値を検出して設定します。 リーリー

行 303-315: 構成パラメーターにデバッグ構成パラメーターが存在するかどうかを確認します。存在しない場合は、定数 DISCUZ_DEBUG: false を定義します。それ以外の場合は、true に設定します。

行 316-317: 定数定義: STATICURL:static/、それを var 属性に格納します。

行 319-320: すべての $_config 配列パラメーターを $this->config および $this->var['config'] に保存します。

行 322: $_config['cookie']['cookiepath'] パラメーター値の前に / スラッシュを追加します。

行 325: $this->var['config']['cookie']['cookiepre'] 値を再定義します。

(3)$this->_init_input() 入力を初期化します

行 236-240: マジック クオート機能がオンになっている場合は、$_GET、$_POST、$_COOKIE のバックスラッシュを削除します。

行 243-246: $this->config['cookie']['cookiepre'] の値に従って、このプレフィックスを持つすべての Cookie は $this->var['cookie'] に保存されます。キー プレフィックスなし。

行 251-253: POST 値は GET にマージされ、GET 値は $this->var['gp_'.key name] に格納されます。

行 255-257: $_GET['page']URL エンコード。

行 259-261: ハンドルが無効な $_GET['handlekey']。値には英数字とアンダースコアのみを含めることができます。

行 264-268: $_GET 値を $this->var['gp_'.key name] に保存し、すべての値はアッドスラッシュ (つまり、引用符と引用符) で囲まれています

行 270-273: $_GET['mod'] を初期化し、$this->var['mod'] に格納します。mod パラメーターは、実行されるモジュール名です。 $_GET['inajax'] を初期化します。 、$this->var['inajax'] に格納、この値によりリクエストが ajax リクエストであるかどうかが決まります。initialize $_GET['page']、store $this->var['page']; this->var ['cookie']['sid']、$this->var['sid'] に格納され、通常は null 値。

行 275-278: $this->var['cookie']['saltkey'] が存在しない場合は、この値を生成して Cookie に保存します。この値は 1 か月間有効です。

行 279: $this->var['cookie']['saltkey'] と $this->var['config']['security']['authkey'] に基づいて、$this を生成します- >var['authkey'] 値。

(4)$this->_init_output() 初期化出力:

行 337-342: Web ページで gzip 圧縮が有効かどうかを判断し、$this->config['output']['gzip']; のブール値を設定し、$ のブール値を設定することを決定します。 _G['gzipcompress'] 。

行 344-346: 出力キャッシュを有効にします。

行 348-353: $_G['charset'] の文字エンコーディング値と定数 CHARSET を設定します。値は $this->config['output']['charset'] にあります。 Webページのヘッダーの文字エンコーディングを出力します。

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

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、