目次
1. PHP ベースの Webshel​​l 攻撃
2. else ステートメントの使用量を減らす
3. シングルページ アプリケーション
4. 検索エンジンに Ajax コンテンツをクロールさせます
5. CURL_MULTI_INIT()
8. HHVM
Zend と比較して、HHVM は効率が向上し、CPU 負荷が軽減され、平均ページ読み込み時間も短縮されたことがさまざまなデータで示されています。 HHVM は PHP の実行パフォーマンスを最適化するために存在します。php5 と比較すると、いくつかの利点があります。php7 を待ちましょう。
参考: http://c2.com/doc/SignatureSurvey/
10. 協調フィルタリング推奨アルゴリズム

PHPの豆知識の研究(1)

Jun 23, 2016 pm 01:41 PM

1. PHP ベースの Webshel​​l 攻撃

Wuyun で PHP ベースの Webshel​​l 攻撃を見ました。

通常の PHP コードを使用して実際のシェルのコンテンツを暗号化し、URL のみを残して画像に保存する高度に隠蔽された Web シェル。URL は暗号化されたままであるため、外部から検出される機能はありません。上記URLを開くと404が表示されますが、この404ページは404を装ったトロイの木馬ですが、タイトルが404 Not Foundに変更されています。

2. else ステートメントの使用量を減らす

if else については、構造的な整合性を追求する人もいます。これは良いことのように思えるかもしれませんが、場合によってはコードが煩雑になる可能性があります。論理的な混乱を招くため、1 つの結果を基準として使用し、他の状況が発生した場合に if 判断を行うことができます。つまり、以下の右の図に示すように、例外がある場合は B になります。 :

3. シングルページ アプリケーション

シングル ページとは、すべての操作とレイアウトが 1 ページで実行され、ページ ジャンプが必要なく、さまざまなユーザーのリクエストに応じてさまざまなコンテンツがロードされることを意味します。

利点: シンプルなページ構造、少ないデータ量、帯域幅の節約、高速応答、優れたエクスペリエンス、開発、保守、最適化が簡単

欠点: ajax テクノロジーの使用は SEO に役立ちません。

4. 検索エンジンに Ajax コンテンツをクロールさせます

主に前のケースの単一ページ構造の場合、プログラムは # 構造 URL を通じてページ コンテンツを制御しますが、検索エンジンによってクロールされません。

方法 1: Twitter は「シャープ記号 + 感嘆符」構造を使用していますが、エクスペリエンスは良くなく、面倒です。

方法 2: ページを更新せずに、ブラウザのアドレス バーに表示されるアドレスを変更します。手順は次のとおりです。

A. History API を使用してハッシュ記号構造を置き換え、各 # 記号が通常のパス URL になり、検索エンジンがすべての Web ページをクロールできるようにします。

B. Ajax 部分を処理し、URL に基づいてコンテンツをクロールする JavaScript 関数を定義します。

C. マウスのクリック イベントを定義し、History オブジェクトの Popstate イベントを使用してブラウザの「進む/戻る」ボタンを処理します。

D. サーバー側を設定します。

5. CURL_MULTI_INIT()

以前はcurl_init()を使用していましたが、最近curl_multi_init();を見たことがありますが、curl_multiの手順を見ると、かなり面倒だと感じました。およびcurl_multiは、CPUが高すぎる、Webページがハングするなどの原因となる可能性があります。curl_initとcurl_multi_initを比較すると、マルチスレッドは必ずしも複数のタスクを同時に処理できるわけではありません。時間コストは必ずしも低いわけではありません。以下に、curl_multi を使用する手順を示します。

ステップ 1:curl_multi_init を呼び出す

ステップ 2: ループ内でcurl_multi_add_handle を呼び出す

このステップでは、curl_multi_add_handle の 2 番目のパラメータが、curl_init のサブハンドルであることに注意してください。ステップ 3: 引き続きcurl_multi_exec を呼び出します

ステップ 4: 必要に応じてループ内でcurl_multi_getcontentを呼び出し、結果を取得します

ステップ 5: 単語ハンドルごとにcurl_closeを呼び出します。

6. PHP strstr() 関数

strstr(string, search) は、別の文字列内で最初に出現する文字列を検索します。文字列の残りの部分 (一致する点から) を返します。検索した文字列が見つからない場合は false を返します。

検索が必要です。検索する文字列を指定します。引数が数値の場合、ASCII 数値に一致する文字を検索します。

参照: http://www.w3cschool.cn/func_string_strstr.html。したがって、2 番目のパラメータを指定するときに、数値を一致させる必要がある場合は、引用符を追加することをお勧めします。

7. 標準化の重要性について

長い間修復されていなかった私の家の近くの道路は、歩行者用通路、自動車専用車線、自動車専用車線に分割することで解決されました。柔軟性が高いと選択肢が多すぎて問題が多くなることがあります。これはプログラムにも当てはまります。ユーザー入力の柔軟性は良いように見えますが、実際には、バグが発生しないように初期段階で標準化してはいかがでしょうか。ソース 絶望的な状況の後に埋め合わせをするのではなく?標準化により、すべてのプロセスがシンプルかつ効率的になります。

8. HHVM

HHVM (HipHop Virtual Machine) は、PHP コードを高レベルのバイトコード (多くの場合、中間言語と呼ばれます) に変換します。これらのバイトコードは、実行時にジャストインタイム (JIT) コンパイラーによって x64 マシンコードに変換されます。

Zend と比較して、HHVM は効率が向上し、CPU 負荷が軽減され、平均ページ読み込み時間も短縮されたことがさまざまなデータで示されています。 HHVM は PHP の実行パフォーマンスを最適化するために存在します。php5 と比較すると、いくつかの利点があります。php7 を待ちましょう。

9. PHP ソース コード署名コレクター

新しい馴染みのないソース コードを学習するときは、コード構造を直感的に理解することが重要です。これは、各ソース ファイルから句読点を 1 行ずつ取得することによって要約できます。つまり、ファイル署名です。これは、コードの複雑さを評価するのに役立ちます。実際には、コード ファイル内の固定シンボルを抽出してファイルの構造を提示します。

参考: http://c2.com/doc/SignatureSurvey/

10. 協調フィルタリング推奨アルゴリズム

1. コンテンツベースの推奨アルゴリズムの前提は、ユーザーがアイテム a を好きであれば、ユーザーは a に似たアイテムも好きであるはずです。基本的な考え方は、コンテンツの属性を分割し、同じ属性を持つコンテンツを抽出して推奨することです。

2. 協調フィルタリング推奨アルゴリズムの前提は、ユーザー a とユーザー b が両方とも一連の同じアイテムを好む場合、a はユーザー b が好む他のアイテムも好む可能性が非常に高いということです。基本的なプロセスは、ユーザーが最初に各項目を評価してスコアを付けることです。異なるユーザーの評価間の類似性を計算することで、最近傍が見つかり、最近傍の評価に基づいて推奨が生成されます。

上記のアルゴリズムはすべて、コサイン類似度やピアソン類似度などの式を使用した行列モデリングを使用します。ご使用の際は2つを1つに組み合わせてご使用いただくことをお勧めします。


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

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開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムの再起動後にUnixSocketの権限を自動的に設定する方法は? システムの再起動後にUnixSocketの権限を自動的に設定する方法は? Mar 31, 2025 pm 11:54 PM

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? Apr 01, 2025 pm 03:12 PM

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

phpstormでCLIモードをデバッグする方法は? phpstormでCLIモードをデバッグする方法は? Apr 01, 2025 pm 02:57 PM

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

See all articles