ホームページ php教程 php手册 PHP技術開発スキルの共有

PHP技術開発スキルの共有

Jun 13, 2016 pm 12:18 PM
php 一般的に アドバンテージ 共有 できる 応用 スキル 技術開発 改善する 効率 Webサイト 走る スピード

1. PHP の動作効率の向上
PHP の利点の 1 つは速度が速いことであり、一般的な Web アプリケーションには十分であると言えます。ただし、サイトのトラフィックが多い、帯域幅が狭い、またはその他の要因によりサーバーのパフォーマンスのボトルネックが発生する場合は、PHP の速度をさらに向上させる他の方法を考える必要がある場合があります。
1.1. コードの最適化
1. i=i 1 の代わりに i =1 を使用します。 C/C習慣に適合し、非常に効率的です。
2. 可能な限りPHPの内部関数を使用する。自分で関数を書く前に、関連する関数がないかマニュアルを詳しく調べてください。そうでないと、無駄な作業になります。
3. 一重引用符で囲まれた文字列を使用できる場合は、一重引用符で囲まれた文字列を使用するようにしてください。一重引用符で囲まれた文字列は、二重引用符で囲まれた文字列よりも効率的です。
4. 配列を走査するには、while の代わりに foreach を使用します。配列を走査するとき、foreach の効率は while ループの効率よりも大幅に高く、reset 関数を呼び出す必要はありません。 2 つのトラバーサル メソッドは次のとおりです。
プログラム 1:

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


リセット($arr);
while (list($key, $value) = each ($arr)) {
echo "キー: $key; 値: $valuen";

プログラム 2:

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

foreach ($arr as $key => $value) {
echo "Key: $key; Value: $valuen";


1.2. HTTP1.1 プロトコルをサポートするページ圧縮と送信。これは、サーバーがページを圧縮してクライアントに送信し、そこで解凍されてクライアントに表示されることを意味します。サーバー側で送信する方法は 2 つあります。1 つは、送信するときに、圧縮されたページをクライアントに送信するだけです。これは、静的な Web ページが多い場合に適しています。ほとんどのサイトでは、動的ページの数が多くなりますが、クライアントに送信されるページの多くは実際には存在しないため、クライアントからのユーザー要求を受信したときにサーバーによって動的に生成されるため、この方法は適していません。生成された動的ページは、圧縮してクライアントに送信する前に、まず生成する必要があります。 PHP バージョン 4.0.4 以降では、php.ini ファイルに設定行「output_handler = ob_gzhandler」を追加できるため、動的に生成された各ページはクライアントに送信される前に圧縮されますが、 PHP公式サイト, このパラメータは、PHPの動作異常を引き起こしやすいため、「zlib.output_compression = on」パラメータと同時に使用することはできません。また、PHPプログラムの動的に生成されたページのみを圧縮できます。多数の静的ページ、特に画像ファイルでは機能しません。ただし、mod_gzip モジュールは、静的ページをクライアントに送信する前に圧縮する機能を Apahe に提供します。その圧縮率は最大 10 に達し、通常は 3 に達します。これは、Web サイトの送信速度が向上したことを意味します。 3回以上。 mod_gzip を使用するには、それに応じて Apache を設定する必要があります。 httpd.conf ファイルにいくつかのパラメータを追加する必要があります。




コードをコピーします

コードは次のとおりです。 : mod_gzip_on はい (モジュールが有効かどうか)

mod_gzip_minimum_file_size 1002 (最小圧縮ファイル サイズ)

mod_gzip_maximum_file_size 0 (最大圧縮ファイル サイズ、0 は制限なしを意味します)
mod_gzip_maximum_inmem_size 60000 (圧縮ファイルの最大サイズ) がメモリを占有します)
mod_gzip_item_include ファイル "..gif102SINA>DOUBLE_QUOTATION (gif で終わるファイルは圧縮して送信する必要があります)
mod_gzip_item_include ファイル ".txt102SINA>DOUBLE_QUOTATION
mod_gzip_item_include ファイル」。 html102S INA>DOUBLE_QUOTATION
mod_gzip_item_exclude ファイル ".css102SINA> DOUBLE_QUOTATION


1.3. ファイルのキャッシュ
この方法は、ユーザーのリクエストを受け取ってもすぐに結果をユーザーに返さないという共通の特徴があるため、PHP や PERL などの CGI プログラムでよく使用されます。実行結果は、インタープリタによる解釈と実行の後にクライアントに返されます。これには通常、データベースへのアクセスが伴います。これにより問題が発生します。2 人のユーザーが同じページにアクセスすると、システムは 2 つのリクエストを別々に処理しますが、実際には 2 つの操作がまったく同じである可能性があり、目に見えないほどシステムの負荷が増加します。したがって、通常の解決策は、ユーザーが初めてページにアクセスしたときにシステム メモリにスペースを空け、ユーザーが再度そのページにアクセスしたときに、システムがそのページを直接削除することです。再解釈や実行を行わずにメモリから呼び出されるこのメモリ空間はキャッシュと呼ばれます。現在人気のあるキャッシュ管理プログラムは、Zend Technologies の Zend Cache です。
2. 外部システム コマンドを実行します
サーバー側スクリプト言語として、PHP は、単純または複雑な動的 Web ページの作成などのタスクを完全に実行できます。ただし、常にそうとは限りません。場合によっては、特定の機能を実装するために、半分の労力で 2 倍の結果を得ることができるように、オペレーティング システムの外部プログラム (またはコマンド) に頼らなければなりません。
PHP で外部コマンドを呼び出すには、次の 3 つの方法を使用できます:
2.1. PHP が提供する特別な関数を使用する
PHP は、外部コマンドを実行するために合計 3 つの特別な関数を提供します: system() 、 exec()、パススルー()。
System()
プロトタイプ: string system (string command [, int return_var])
system() 関数は、他の言語の関数と似ており、指定されたコマンドを実行し、結果を出力します。 2 番目のパラメーターはオプションであり、コマンドの実行後にステータス コードを取得するために使用されます。
例:
system("/usr/local/bin/webalizer/webalizer");
exec()
プロトタイプ: string exec (string command [, string array [, int return_var]] )
exec() 関数は system() と似ていますが、指定されたコマンドを実行しますが、結果は出力せず、結果の最後の行を返します。コマンド結果の最後の行のみを返しますが、2 番目のパラメーター配列を使用すると、配列の末尾に結果を 1 行ずつ追加することで完全な結果を取得できます。したがって、配列が空でない場合は、呼び出す前に unset() を使用して配列をクリアするのが最善です。第3パラメータは第2パラメータを指定した場合のみ、コマンド実行時のステータスコードを取得できます。
例:

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


exec("/bin/ls -l" );
exec("/bin/ls -l", $res);

passthru()
プロトタイプ: void passthru (string command [, int return_var])
passthru() はコマンドを呼び出すだけで結果は返さず、コマンドの実行結果をそのまま標準出力装置に直接出力します。 。したがって、 passthru() 関数は、pbmplus (元の画像のバイナリ ストリームを出力する、Unix で画像を処理するツール) のようなプログラムを呼び出すためによく使用されます。コマンド実行時のステータスコードも取得できます。
例:

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

header("Content-type: image/gif ");
passthru("./ppmtogif Hunte.ppm");

2.2. Popen() 関数を使用してプロセスを開きます
上記のメソッドは、単純にコマンドを使用できますが、コマンド Interaction と一緒に使用することはできません。ただし、コマンドに何かを入力する必要がある場合があります。たとえば、Linux システム ユーザーを追加する場合、su を呼び出して現在のユーザーを root に変更する必要があり、su コマンドはコマンド ラインに root パスワードを入力する必要があります。この場合、明らかに上記の方法を使用することはできません。
Popen() 関数は、指定されたコマンドを実行するためにプロセス パイプを開き、ファイル ハンドルを返します。ファイルハンドルが返されるので、読み書きが可能です。 PHP3 では、この種のハンドルは書き込みまたは読み取りの 1 つの操作モードでのみ使用できますが、PHP4 以降は読み取りと書き込みを同時に行うことができます。ハンドルが 1 つのモード (読み取りまたは書き込み) で開かれていない限り、ハンドルを閉じるには pclose() 関数を呼び出す必要があります。
例 1
$fp=popen("/bin/ls -l", "r");
例 2

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

/* PHP でシステム ユーザーを追加する方法
以下は、james という名前のユーザーを追加するルーチンです。
root パスワードは非常に重要です。良い。参考のみ
*/
$sucommand = "su --login root --command";
$useradd = "useradd ";
$rootpasswd = "verygood"; = "ジェームズ";
$user_add = sprintf("%s "%s %s"",$sucommand,$useradd,$user)
$fp = @popen($user_add,"w"); ;
@fputs($fp,$rootpasswd)
@pclose($fp);
3. 適切なプログラミング スタイルを開発する
多くの場合、PHP の最も価値のある機能は、その緩い構文である可能性があります。 PHP が広く使用されているのは、経験の浅い Web 開発者の多くが計画、一貫性、ドキュメント化についてあまり心配することなく強力なアプリケーションを作成できるためです。残念ながら、上記の特性により、多くの PHP ソース コードは肥大化して読みにくく、さらには保守が不可能になってしまいます。コードの保守性を決定する重要な要素は、コードの形式とコメントです。プロジェクトのすべてのコードは、一貫した方法で編成する必要があります。以下では、PHP プログラムで適切なコーディング スタイルを開発する方法について説明します。
3.1. インデント
開発者が作成するすべてのコードは、正確にインデントして記述する必要があります。これは、コードの可読性を向上させるための最も基本的な対策です。コードにコメントを付けない場合でも、コードを他の人が理解しやすくするためにインデントは非常に役立ちます。
3.2. コメントを追加する
プログラミング時にコメントを追加することは良い習慣です。PHP では、コメントを追加する方法は C 言語のコメント構文と同じです。スクリプト。 「/*」と「*/」を使用して段落をコメントアウトできます。ダブルスラッシュ「//」はコメント文字として使用できます。
3.3. 制御構造
これは個人の好みに大きく依存します。分岐ステートメントのない制御構造コードが依然として多く見られるため、可読性が非常に低くなります。たとえば、分岐のない IF ステートメントを使用すると、可読性が悪化するだけでなく、他の人がプログラムを変更したときに可読性が低下します。多くのバグを引き起こします。次の例を見てください:
悪い例:
if ($a == 1) echo 'A は 1 に等しかった';
これは非常に読みにくいです。それはうまくいきますが、あなた以外には誰もそれを評価しません。 改善された例:
if ($a == 1)
echo 'A was等しい';
これで、少なくともこのコードは読み取れるようになりましたが、まだ保守性は高くありません。 $a==1 のときに追加のイベントを発生させたい場合、または分岐を追加する必要がある場合はどうすればよいでしょうか? 後のプログラマーが中括弧や else キーワードを追加するのを忘れた場合、プログラムにバグが発生します。
完璧な例

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


if (($a == 1) && ($ b==2)) {
echo 'A は 1 に等しかった' //他のコードを追加するのは簡単です
} elseif (($a == 1) && ($b==3); )) { //その他の操作
}


また、elseif の実行セクションには、このステートメントと関数呼び出しを区別するためのスペースがあることに注意してください。はステートメントではなくコメントのみです。一見冗長に見えますが、将来プログラムを保守するプログラマーにとって非常に便利なヒントを提供し、機能を追加するのに非常に役立ちます。
3.4. Includeを使って関数のモジュール化を実現
よく使う関数をPHPファイルに格納しておきたい場合は、その関数を含むPHPファイルを呼び出し元の関数に含めます。このとき、Include 機能を使用できます。具体的な構文は次のとおりです:
include($FileName);
使用するときは、次の点に注意する必要があります。
1. 自己包含は避けるべきです。つまり、include がある場合、File1 には File1 が含まれます。ステートメントを複数のファイルに含める場合、間接的な自己包含は避けるべきです。たとえば、File1 には File2 が含まれ、File2 には File3 が含まれ、File3 には File1 が含まれます。2. インクルードされるスクリプト言語のタイプは PHP である必要があります。言語タイプまたはスクリプト ステートメント セグメント。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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 にアップグレードする方法について説明します。

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 は、

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

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

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

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles