ホームページ バックエンド開発 PHPチュートリアル PHP マージ静的ファイルの例の詳細な説明

PHP マージ静的ファイルの例の詳細な説明

Jul 10, 2017 am 11:32 AM
php 詳しい説明

この記事では、PHP で静的ファイルをマージするために必要な関連する設定と完全なコード、および使用手順が詳しく紹介されています。必要な方にはここをお勧めします

PHP.ini を設定する

設定を変更します。 item (必須) auto_prepend_file = "C: XAMPPHTDOCSAUTO_PREPEND_FILE.PHP"

設定項目を変更します (オプション)allow_url_include = On

Auto_prepend_file.php ファイルの内容

以下:

<?php
/**
 * 引入static文件
 * @param {array|string} 相对路径
 * @param {string} 当前执行脚本所在的路径FILE
 *
 */
function import_static($files, $path=NULL){
    // 更改当前脚本的执行路径
    $old_dir = getcwd();
    $tmp_dir = (isset($path)) ? dirname($path): dirname(FILE);
    chdir($tmp_dir);
    // 整理包含文件
    if (!is_array($files)) {
        $tmp = array();
        $tmp[] = $files;
        $files = $tmp;
    }
    // 发送头信息
    if (isset($files[0])) {
        if (stripos($files[0], &#39;.js&#39;) !== false) {
            $header_str = &#39;Content-Type:   text/javascript&#39;;
        } elseif (stripos($files[0], &#39;.css&#39;) !== false) {
            $header_str = &#39;Content-Type:   text/css&#39;;
        }
        if (!ob_get_contents()) {
            header($header_str);
        }
    }
    // 引入包含文件
    foreach($files as $key=>$value) {
        require_once($value);
    }
    // 改回当前脚本的执行路径
    chdir($old_dir);
}
?>
ログイン後にコピー

コードは次のとおりです。

りー

HTML ページでは、 を使用してインポートします。

製品がオンラインになる前に、バッチ

ファイル処理を使用して処理します。主に 2 つの側面の作業を行います1.「*.js.php」を「*.js」ファイルに出力し、「*.js.php」を削除します。 。コマンドライン: php *.js.php > *.js
2. HTML ページ内の「*.js.php」への参照を「*.js」に置き換えます。 preg_replace()

追記: import_static 関数は、PHP で相対パスを処理する include() の問題を解決します。

次の PHP コード例は、ユーザーのパスワードのリセットを支援するために機能し、requestResetPassword はユーザーのパスワードのリセット要求を受け取り、対応するチェックを実行します。再利用性を高めるために、パスワードを変更した後、パスワードのリセット操作を新しいresetPassword関数に割り当て、sendEmailを呼び出してユーザーに通知メールを送信しました。

"a.js"、"b.js"和"../c.js"是待合并的JS文件,将其合并为base.js.php,则base.js.php中的代码如下:
<?php
    import_static(array(
        &#39;a.js&#39;,
        &#39;b.js&#39;,
        &#39;../c.js&#39;,
        &#39;../moduleB/all.js.php&#39;    // 也可引用.php文件
    ), FILE);
?>
ログイン後にコピー

ここで問題は、これら 3 つの関数がすべて、ユーザーが存在しないことを確認するために checkUserExists 関数を同時に使用するため、追加のオーバーヘッドが発生することです。

3つの中のcheckUserExistsを削除したい場合は可能のようです。ただし、後から一部の関数がresetPasswordまたはsendEmailを呼び出し、ユーザーが存在しない場合、システムでエラーが発生する可能性があります。
もう 1 つの解決策は、resetPassword のロジックを requestResetPassword に書き込み、少し後に sendEmail のロジックも同様に書き込むことです。このようにして、関数呼び出しが減り、データベース クエリが 1 回になり、パフォーマンスが向上します。ただし、パスワードのリセットと電子メールの送信の機能は再利用できず、単一責任の原則に違反し、コードの複雑さも増加します。
ただし、関数の分離と再利用性は非常に優れているため、実際のパフォーマンスに影響がある場合は、データベース クエリを減らすためにキャッシュの使用を検討してください。共有する checkUserExists 関数を変更しました。

/**
 * 用户请求重置密码的接收器
 */
function requestResetPassword() {
    //检查用户是否存在
    if( !checkUserExists( $_GET[&#39;userid&#39;] ) ) {
        exit(&#39;抱歉,用户不存在,请确认用户帐号。&#39;);
    }
    resetPassword( $_GET[&#39;userid&#39;] );
    //最后向用户发送一封邮件
    sendEmail( $_GET[&#39;userid&#39;], &#39;重置密码成功&#39;, &#39;新的密码是xxxx&#39; );
    exit(&#39;新密码已经发送到你的邮箱。&#39;);
}

/**
 * 帮助用户重置密码
 */
function resetPassword( $userid ) {
    //检查用户是否存在
    if( !checkUserExists( $userid ) ) {
        return false;
    }

    //进行重置用户密码的操作
    //略...
    return true;
}

/**
 * 向用户发送一封邮件
 */
function sendEmail( $userid, $title, $content ) {
    //检查用户是否存在
    if( !checkUserExists( $userid ) ) {
        return false;
    }

    //发送邮件操作
    //略...
    return true;
}

/**
 * 检查某个用户是否存在
 */
function checkUserExists( $userid ) {
    $user = getUserInfo( $userid );
    return !empty( $user );
}

/**
 * 获取某个用户的数据
 */
function getUserInfo( $userid ) {
    //假设我有一个query的函数,它用来查询数据库并返回数据
    $user = query( "SELECT * FROM `user` WHERE `uid`=" . intval( $userid ) );
    return is_array( $user ) ? $user : array() ;
}
ログイン後にコピー
同じメソッドを使用して getUserInfo を変更することもできます。関数。

ここで、コードの再利用性が向上すると、パフォーマンスを向上させるのが非常に簡単になり、パフォーマンスのボトルネックも発見して変更するのが簡単になることがわかります。この例はパフォーマンスに大きな影響を与えませんが、トラバーサルなど、再利用のためにトラバーサルを関数にカプセル化し、それを複数回使用する場合があります。これらの出費は、予想していたほど私のプロジェクトに大きな影響を与えなかったか、最小限でした。したがって、私はパフォーマンスの無駄を心配するよりも、コードの再利用性と保守性を向上させる方法に時間を費やすことを好みます。実際のパフォーマンスが要件を満たしていない場合は、ハードウェア構成を増やすことも検討できます。

以上がPHP マージ静的ファイルの例の詳細な説明の詳細内容です。詳細については、PHP 中国語 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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

See all articles