PHP正規表現入門チュートリアル[翻訳]、正規表現入門チュートリアル
マインドマップ 具体的な内容は下の画像をクリックしてご覧ください!
$regex = '/^http://([w.]+)/([w]+)/([w]+).html$/i' ;
$str = 'http://www.youku.com/show_page/id_ABCDEFG.html' ;
$matches = array();
if (preg_match($regex, $str, $matches)){
var_dump($matches);
}
echo "n" ;
|
preg_match の $matches[0] には、パターン全体に一致する文字列が含まれます。
「#」区切り文字を使用したコードは以下の通りです
このとき、「/」はエスケープされません。
$regex = '#^http://([w.]+)/([w]+)/([w]+).html$#i' ;
$str = 'http://www.youku.com/show_page/id_ABCDEFG.html' ;
$matches = array();
if (preg_match($regex, $str, $matches)){
var_dump($matches);
}
echo "n" ;
|
¤ 修飾子: 正規表現の動作を変更するために使用されます。
('/^http://([w.]+)/([w]+)/([w]+).html/i') の最後の「i」は修飾子が無視することを意味します私たちがよく使うもう 1 つの文字は、スペースを無視することを意味する「x」です。
貢献コード:
$regex = '/HELLO/' ;
$str = 'hello word' ;
$matches = array ();
if (preg_match( $regex , $str , $matches )){
echo 'No i:Valid Successful!' , "n" ;
}
if (preg_match( $regex . 'i' , $str , $matches )){
echo 'YES i:Valid Successful!' , "n" ;
}
|
¤ 文字フィールド: [w] 角括弧で展開された部分が文字フィールドです。
¤ 修飾子: [w]{3,5}、[w]*、[w]+ など、[w] の後の記号はすべて修飾子を表します。具体的な意味をご紹介します。
{3,5} は 3 ~ 5 文字を意味します。 {3,} は 3 文字を超え、{,5} は最大 5 文字、{3} は 3 文字です。
* は 0 からそれ以上を意味します
+ は 1 からそれ以上を意味します。
¤キャレット
^:
放 & gt; 文字ドメイン ([^w] など) を入力して、否定 (意味を除く) を示します - 「選択を反転」️式の前に配置して、現在の文字から始めることができます。 (/^n/i、n で始まることを意味します)。
注意してください、私たちはしばしば「」エスケープ文字と呼びます。 「.」、「/」などの特殊記号をエスケープするために使用されます
ワイルドカード (ルックアラウンド): 特定の文字列内の特定の文字の有無をアサートします。 ルックアラウンドには、先読み (前方参照 ?=) と後読み (逆引き ? 形式: 肯定的な検索: (?!) に対応する (?=) は否定的な意味を意味します 逆プレルックアップ: (?
$regex = '/(?<code class="php plain">; /* d 前面紧跟c, d 后面紧跟e*/
$str = 'abcdefgk' ;
$matches = array ();
if (preg_match( $regex , $str , $matches )){
var_dump( $matches );
}
echo "n" ;
|
$regex = '/(?<code class="php plain">; /* d 前面不紧跟c, d 后面不紧跟e*/
$str = 'abcdefgk' ;
$matches = array ();
if (preg_match( $regex , $str , $matches )){
var_dump( $matches );
}
echo "n" ;
|
> 文字幅: 0 ゼロ文字コードを検証する
$regex = '/HE(?=L)LO/i' ;
$str = 'HELLO' ;
$matches = array ();
if (preg_match( $regex , $str , $matches )){
var_dump( $matches );
}
echo "n" ;
|
結果は印刷できません!
$regex = '/HE(?=L)LLO/i' ;
$str = 'HELLO' ;
$matches = array ();
if (preg_match( $regex , $str , $matches )){
var_dump( $matches );
}
echo "n" ;
|
結果を印刷できます!
説明: (?=L) は、HE の後に L 文字が続くことを意味します。ただし、(?=L) 自体は 1 文字を占有しないため、それ自体が 1 文字を占有する (L) とは区別する必要があります。
キャプチャデータ タイプを指定しないグループ化は、後で使用するために取得されます。 > は、タイプがワイルドカード文字を参照していることを示します。したがって、括弧の先頭に疑問符のないもののみがキャプチャされます。 > 同じ式内の参照は後方参照と呼ばれます。 > 呼び出し形式: 番号 (1 など)。
$regex = '/^(Chuanshanjia)[ws!]+1$/' ;
$str = 'Chuanshanjia thank Chuanshanjia' ;
$matches = array ();
if (preg_match( $regex , $str , $matches )){
var_dump( $matches );
}
echo "n" ;
|
> データのキャプチャを避ける 形式:(?:パターン) 利点: 有効な後方参照の数が最小限に抑えられ、コードがより明確になります。 > 名前付きキャプチャ グループ 形式: (?P) 呼び出しメソッド (?P=グループ名)
$regex = '/(?P<author>chuanshanjia)[s]Is[s](?P=author)/i'</author> ;
$str = 'author:chuanshanjia Is chuanshanjia' ;
$matches = array ();
if (preg_match( $regex , $str , $matches )){
var_dump( $matches );
}
echo "n" ;
|
実行結果
遅延マッチング (覚えておいてください: 2 つの操作が実行されます。以下の原則部分を参照してください)
形式:修飾子?
原則: "?": 前に修飾子がある場合、最小のデータが使用されます。たとえば、「*」には 0、「+」には 1 がかかります。{3,5} の場合は 3 がかかります。
まず次の 2 つのコードを見てください:
コード 1.
<?php
$regex = '/heL*/i' ;
$str = 'heLLLLLLLLLLLLLLLL' ;
if (preg_match( $regex , $str , $matches )){
var_dump( $matches );
}
echo "n" ;
|
結果1.
コード2
<?php
$regex = '/heL*?/i' ;
$str = 'heLLLLLLLLLLLLLLLL' ;
if (preg_match( $regex , $str , $matches )){
var_dump( $matches );
}
echo "n" ;
|
結果2
コード 3、「+」を使用します
<?php
$regex = '/heL+?/i' ;
$str = 'heLLLLLLLLLLLLLLLL' ;
if (preg_match( $regex , $str , $matches )){
var_dump( $matches );
}
echo "n" ;
|
結果3
コード 4、{3,5} を使用します
<?php
$regex = '/heL{3,10}?/i' ;
$str = 'heLLLLLLLLLLLLLLLL' ;
if (preg_match( $regex , $str , $matches )){
var_dump( $matches );
}
echo "n" ;
|
結果4
$regex = '/
^host=(?
<code class="php plain">|
([w!@#$%^&*()_+-]+) (?#用户名)
|
([w!@#$%^&*()_+-]+) (?#密码)
(?!|)$/ix';
$str = 'host=192.168.10.221|root|123456' ;
$matches = array ();
if (preg_match( $regex , $str , $matches )){
var_dump( $matches );
}
echo "n" ;
|
特殊文字
特殊文字 | 説明 |
* | 0回から複数回 |
+ | 1回から複数回は{1,}と書くこともできます |
? | 0回または1回 |
. | 改行を除くすべての単一文字と一致します |
w | [a-zA-Z0-9_] |
す | 空白文字 (スペース、改行、復帰) [tnr] |
d | [0-9] |

負荷分散はセッション管理に影響しますが、セッションの複製、セッションの粘着性、集中セッションストレージで解決できます。 1。セッションレプリケーションサーバー間のセッションデータをコピーします。 2。セッションスティンネスは、ユーザーリクエストを同じサーバーに指示します。 3.集中セッションストレージは、Redisなどの独立したサーバーを使用してセッションデータを保存してデータ共有を確保します。

SESSIONLOCKINGISATECHNIQUESTOESUREAUSER'SSESSIONREMAINSEXCLUSIVETOONEUSATIME.ITISCRUCIALFORPREVENTINGDATACORTIONANDSECURITYBREACHESINMULTI-USERAPPLICATIONS.SESSIONLOCKINGISISIMPLEMENTEDUSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGROCKINGSMECHANISMなど

PHPセッションの代替品には、Cookie、トークンベースの認証、データベースベースのセッション、Redis/Memcachedが含まれます。 1.Cookiesは、クライアントにデータを保存することによりセッションを管理します。 2.トークンベースの認証はトークンを使用してユーザーを検証します。これは非常に安全ですが、追加のロジックが必要です。 3.Databaseベースのセッションは、データベースにデータを保存します。これは、スケーラビリティが良好ですが、パフォーマンスに影響を与える可能性があります。 4. Redis/Memcachedは分散キャッシュを使用してパフォーマンスとスケーラビリティを向上させますが、追加のマッチングが必要です

SessionHijackingとは、ユーザーのSessionIDを取得してユーザーになりすましている攻撃者を指します。予防方法には、次のものが含まれます。1)HTTPSを使用した通信の暗号化。 2)SessionIDのソースの検証。 3)安全なSessionID生成アルゴリズムの使用。 4)SessionIDを定期的に更新します。

この記事では、PHPについて説明し、その完全なフォーム、Web開発での主要な使用、PythonとJavaとの比較、および初心者の学習のしやすさについて説明します。

PHPは、$ \ _ postおよび$ \ _を使用してフォームデータを処理し、検証、消毒、安全なデータベースインタラクションを通じてセキュリティを確保します。

この記事では、PHPとASP.NETを比較して、大規模なWebアプリケーション、パフォーマンスの違い、セキュリティ機能への適合性に焦点を当てています。どちらも大規模なプロジェクトでは実行可能ですが、PHPはオープンソースであり、プラットフォームに依存しませんが、ASP.NET、

PHPの症例感度は変化します:関数は鈍感であり、変数とクラスは感度があります。ベストプラクティスには、一貫した命名と、比較のためにケース非感受性関数を使用することが含まれます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

ホットトピック









