1. preg_match — 正規表現一致を実行します
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
検索件名とパターンで指定された正規表現との一致の場合、
pattern:
検索するパターン、文字列タイプ。
件名:
文字列を入力します。
matches:
パラメータのmatchesが指定されている場合、それが検索結果として入力されます。 $matches[0] には完全なパターンと一致するテキストが含まれ、$matches[1] には最初にキャプチャされたサブグループと一致するテキストが含まれます。
flags:
flags は次のフラグ値に設定できます: PREG_OFFSET_CAPTURE このフラグが渡されると、一致が発生するたびに文字列オフセット (ターゲット文字列を基準とした) が返されます。 注: これにより、matches パラメータに入力された配列が変更され、各要素が 0 番目の要素が一致した文字列、最初の要素がターゲット文字列 subject 内の一致した文字列のオフセットとなる文字列になります。
offset:
通常、検索は対象文字列の先頭から開始されます。オプションのパラメータ offset は、ターゲット文字列内の未知の点から開始する検索を指定するために使用されます (単位はバイト)。
戻り値:
preg_match() はパターンの一致数を返します。 preg_match() は最初の一致後に検索を停止するため、その値は 0 (一致なし) または 1 になります。 preg_match_all() はこれとは異なり、件名を最後まで検索します。 エラーが発生した場合、preg_match() は FALSE を返します。
例:
/*
*パターン区切り文字の後の「i」マーク 大文字と小文字を区別しない検索です
*出力されます: 1
*/
echo preg_match("/,s*(php)/i", "私の意見では、PHP が最適な Web スクリプト言語です。");
echo "
". n ";
/*
* 出力: Array([0]=>, PHP [1]=>PHP)
*/
$matches = array();
preg_match("/,s*(php) )/i", "私の意見では、PHP は php が大好きな Web スクリプト言語です。", $matches);
print_r($matches);
echo "
"."n";
/*
* は出力されます: Array([0]=>Array([0]=>, PHP [1]=>11) [1]=>Array([0]=>PHP [ 1]=>13))
*/
preg_match("/,s*(php)/i", "私の考えでは、Web スクリプト言語として PHP が最適です。私は php が大好きです。", $matches, PREG_OFFSET_CAPTURE ) ;
print_r($matches);
echo "
"."n";
/*
*出力は次のとおりです:Array([0]=>Array([0]=>e php [ 1]=63) [1]=>Array([0]=>php [1]=>65))
*/
preg_match("/[,a-z]?s*(php)/ i" , "私の意見では、PHP は最適な Web スクリプト言語です。私は php が大好きです。", $matches, PREG_OFFSET_CAPTURE, 28);
print_r($matches);
echo "
"."n ";
?>
2.preg_match_all — グローバル正規表現一致を実行します
int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )指定された正規表現パターンに一致するサブジェクト内のすべての一致結果を検索し、最初の一致が見つかった後、サブシーケンスは最後の一致位置検索から継続されます。 .
pattern:
文字列形式の検索するパターン。
件名:
文字列を入力します。
matches:
多次元配列、すべての一致結果を出力パラメータとして出力、配列のソートはフラグで指定されます。
flags:
は、次のタグと組み合わせて使用できます(PREG_PATTERN_ORDERとPREG_SET_ORDERは同時に使用できないことに注意してください)。ソートタグが指定されていない場合は、PREG_PATTERN_ORDERに設定されているとみなされます:
PREG_PATTERN_ORDER:
結果。完全なパターンのすべての一致を保存するには $matches[0] としてソートされ、$matches[1] では最初のサブグループのすべての一致が保存されます。
PREG_SET_ORDER:
結果は、$matches[0] には最初の一致で得られたすべての一致 (サブグループを含む) が含まれ、$matches[1] には 2 番目の一致で得られたすべての一致 (サブグループを含む) が含まれる配列として並べ替えられます。の上。
PREG_OFFSET_CAPTURE:
このフラグが渡された場合、見つかった各一致は、ターゲット文字列に対する相対的なオフセットを増加して返されます。 これにより、一致の各一致結果文字列要素が変更され、0 番目の要素が一致結果文字列で、最初の要素が件名内の一致結果文字列のオフセットとなる一致結果文字列になることに注意してください。
戻り値:
完全一致の数 (おそらく 0) を返します。エラーが発生した場合は FALSE を返します。
例:
/*
*将会出:2
*/
echo preg_match_all("/php/i", "私の意見では、PHP は最適な Web スクリプト言語です。私は php が大好きです", $一致);
echo "
"."n";
/*
*将会输出:Array([0]=>, PHP [1]=>PHP)
*/
$ matches = array();
preg_match("/[,a-z]?s*(php)/i", "私の考えでは、Web スクリプト言語として PHP が最適です。私は php が大好きです。", $matches);
print_r ($matches);
echo "
"."n";
/*
*将会输出:Array([0]=>Array([0]=>, PHP [1] =>e php) [1]=>Array([0]=>PHP [1]=>php))
*/
$matches = array();
preg_match_all("/[,a-z] ?s*(php)/i", "私の考えでは、PHP は php が大好きな Web スクリプト言語です。", $matches, PREG_PATTERN_ORDER);
print_r($matches);
echo "
/*
*将会输出:Array([0]=>Array([0]=>Array([0]=>, PHP [1]=>11) [1]=>Array([0]=>PHP [1]=>13)) [1]=>Array([0]=>Array([0]=>e php [1]) ]=>63) [1]=>Array([0]=>php [1]=>65)))
*/
$matches = array();
preg_match_all("/[,a-z ]?s*(php)/i", "私の見解では、PHP は最適な Web スクリプト言語です。私は php", $matches, PREG_SET_ORDER|PREG_OFFSET_CAPTURE);
print_r($matches);
echo "
"."n";
/*
*Array([0]=>Array( [0]=>e php [1]=>63) [1]=>Array([0]=>php [1]=>65))
*/
$matches = array() ;
preg_match_all("/[,a-z]?s*(php)/i", "私の考えでは、Web スクリプト言語として PHP が最適です。私は php が大好きです。", $matches, PREG_SET_ORDER|PREG_OFFSET_CAPTURE, 28);
print_r($matches);
echo "
"."n";
?>
3.preg_split — 通过一正则表达式分字文字列
array preg_split ( string $ pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )
正表形式の分間隔文字列を通過します。
pattern:
検索用のモード、文字列形式。 subject:
入力文字列
limit:
指定されている場合、制限分割された子列は最大で制限内に限り、返される最後の子列にはすべての残りの部分が含まれます。limit 値は -1、0、または null の場合を表します。
flags:
flags は、次のフラグの組み合わせ (ビットまたは組み合わせで):
PREG_SPLIT_NO_EMPTY:設置
PREG_SPLIT_DELIM_CAPTURE:
このマークが設定されている場合、分割されたモード内のパケット番号表形式がキャプチャされて返されます。个标记被設置、出現するマッチングが返されるたびに、追加の文字列がオフセットされます。 注意: これにより、返される回数グループ内の各要素が 0 番目の要素から隔てられた子列に変更されます。第 1 の要素は、サブジェクト内にある子ストリングのオフセット量構成の数グループです。
戻り値:
使用パターン境界をサブジェクトがその後に取得した子ストリングの構成の数グループを返します。
代码如下:
/*
*将会输出:
*Array ( [0] => 私の意見では、[1] => が Web スクリプト言語の選択です。私は php が大好きです。 )
*/
$matches = array();
print_r(preg_split("/php/i", "私の意見では、PHP は最適な Web スクリプト言語です。私は php が大好きです", 2));
echo "
"."n";
/*
*将会输出:
*Array ( [0] => 私の意見では、[1] => が Web スクリプト言語の選択です。 love )
*/
$matches = array();
print_r(preg_split("/php/i", "私の意見では、PHP が Web スクリプト言語の選択です。私は php が大好きです。", -1, PREG_SPLIT_NO_EMPTY)) ;
echo "
"."n";
?>
4.preg_quote — 正規表現文字のエスケープ
string preg_quote ( string $str [, string $delimiter = NULL ] )
preg_quote() は引数 str を受け取り、正規表現構文の各文字を追加します。前にバックスラッシュ。 これは通常、正規表現として照合する必要があるランタイム文字列がある場合に使用されます。
正規表現の特殊文字は次のとおりです: . + * ? [ ^ ] $ ( ) { } = : -
文字列
区切り文字が指定されている場合は、次のようになります。逃げた。これは通常、PCRE 関数で使用される区切り文字をエスケープするために使用されます。 / は最も一般的な区切り文字です。
戻り値:
エスケープされた文字列を返します。
例:
$textbody = "この本は *とても* 見つけにくいです。";
$word = "*とても*";
$textbody = preg_replace ("/" . preg_quote($word) . "/", "" . $word . "", $textbody);
//この本は *非常に* 見つかりにくいです。
echo htmlspecialchars($textbody ;パターン pattern に一致する要素の配列。
文字列形式の検索するパターン。
入力配列。 PREG_GREP_INVERT に設定すると、この関数は指定されたパターンの入力配列を返します。 pattern 一致しない要素で構成される配列
戻り値:
入力のキーを使用してインデックス付けされた配列を返します
コードは次のとおりです:
$ array = array( "abc", "dd", "123", "123.22", "word123", "33.2", "0.22");
//浮動小数点数を含むすべての要素を返します
//出力: Array ( [3] = > 123.22 [5] => 33.2 [6] => 0.22 )
$fl_array = preg_grep("/^(d+)?.d+$/", $array);
print_r($fl_array) );
/ /浮動小数点数を含むすべての要素を返します
//出力: Array ( [0] => abc [1] => dd [2] => 123 [4] => word123 )
$ fl_array = preg_grep( "/^(d+)?.d+$/", $array, PREG_GREP_INVERT);
print_r($fl_array);
?>
6.preg_replace — 正規表現検索と置換を実行します
mixed preg_replace (mixed $pattern ,mixed $replacement ,mixed $subject [, int $limit = -1 [, int &$count ]] )
Searchパターンに一致する被写体の部分を抽出し、置換に置き換えます。
パターン:
検索するパターン。文字列または文字列の配列を指定できます。 この関数には、「e」 (PREG_REPLACE_EVAL) を含むいくつかの PCRE 修飾子を指定できます。
replacement:
置換する文字列または文字列の配列。このパラメータが文字列でパターンが配列の場合、すべてのパターンがこの文字列で置き換えられます。 pattern と replace が両方とも配列の場合、各パターンは、replacement の対応する要素で置き換えられます。置換の要素がパターンの要素よりも少ない場合、余分なパターンは空の文字列に置き換えられます。置換には後方参照 \n または (PHP 4.0.4 以降で利用可能) $n を含めることができますが、構文的には後者の方が優先されます。 このような各参照は、n 番目に一致するキャプチャ サブグループによってキャプチャされたテキストに置き換えられます。 n は 0 ~ 99 で、\0 と $0 は完全なパターン マッチング テキストを表します。 キャプチャ サブグループのシリアル番号のカウント方法は次のとおりです。キャプチャ サブグループを表す左括弧は、1 から開始して左から右に数えられます。置換にバックスラッシュを使用したい場合は、4 ("\\"、翻訳者の注釈: これは最初は PHP 文字列であるため、エスケープ後は 2 つになり、正規表現エンジンによってオリジナルと見なされます)バックスラッシュ)。
置換モードで作業しており、後方参照の後に別の数値を続ける必要がある場合 (例: 一致するパターンの直後に元の数値を追加する)、構文 \1 を使用して後方参照を記述することはできません。たとえば、\11 を指定すると、preg_replace() は、\1 後方参照の後に元の 1 が続くのか、それとも \11 後方参照の後に何も続くのかを理解できなくなります。 この場合の解決策は、${1}1 を使用することです。
これにより、別の $1 後方参照、別の source1 が作成されます。 e 修飾子を使用する場合、この関数は一部の文字 ('、"、および NULL) をエスケープし、後方参照の置換を実行します。これが完了するとき、後方参照が一重引用符または二重引用符なしで解決されていることを確認してください。構文エラー (for例: 'strlen('$1')+strlen("$2")')。置換が完了すると、
エンジンは結果の文字列を次のように扱うため、PHP の文字列構文と eval 構文に準拠していることを確認してください。 PHP コードは eval メソッドを使用して値を評価し、置換に含まれる最終文字列として返します。
subject:
検索および置換される文字列または文字列の配列 subject が配列の場合、検索して置換します。 1 つの要素に対して実行され、戻り値も配列になります。
limit:
パターンごとの置換の最大数。
count:
指定されている場合は、それが使用されます。完了した置換の数が入ります。
戻り値:
サブジェクトが配列の場合、preg_replace() は配列を返し、一致しない場合は置換されたサブジェクトを返します。件名は変更されていません。エラーが発生した場合は、NULL が返されます。
例:
後方参照を使用して値を追跡します。元のテキスト:
$string = 'April 15 , 2003';
/*
*w+ 文字を 1 回以上繰り返します
*d+ 数字を 1 回以上繰り返します
*大文字と小文字を区別しません
*/
$pattern = '/(w+) ( d+), (d+) /i';
/*
*$0 完全なパターン マッチング テキスト
*${1}1 最初の括弧内のパターン マッチング テキストとそれに続く 1
*\3 3 番目の括弧内のパターン マッチング テキスト
* /
$replacement = '$0:
${1}1,\3';
echo preg_replace($pattern, $replacement, $string);
?>
preg_replace( )インデックスベースの配列:
$string = '足の速い茶色のキツネは怠惰な犬を飛び越えました。';
$patterns = array();
$patterns [ 0] = '/quick/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements = array();
$replacements[2] = 'bear';
$replacements[1] = 'black';
$replacements[0] = 'slow';
//出力: 黒クマはゆっくりと怠惰な犬を飛び越えました。
echo preg_replace($patterns, $ replaces, $string);
//パターンと置換内容をキーでソートすることで、望ましい結果を得ることができます。
ksort($patterns);
ksort($replacements);
//ゆっくりとジャンプしたツキノワグマは、怠惰な犬上の出力
echo preg_replace($patterns, $replacements, $string);
いくつかの値を置き換えます:
$patterns = array ('/(19|20)(d{2})-(d{1,2})-(d{1,2})/',
s *{ (w+)}s*=/');
$replace = array ('3/4/12', '$1 =');
echo preg_replace($patterns, $replace, '{startDate} = 1999 -5- 27');
?>
修飾子 'e' を使用します:
$html_body = "
";
// 出力は次のとおりです:
hello
echo htmlspecialchars(preg_replace("/( ? )(w+)([^>]*>)/e",
"'\1'.strtoupper('\2').'\3'",
空白文字を削除します:
$str = preg_replace('/ss+/', ' ', $ str);
// 'foo o' に変更します
echo $str;
?>
パラメータ count を使用します:
echo preg_replace(array('/d/', '/s/'), '*', 'xp 4 to', -1 , $count);
//echo preg_replace(' /d|s/ と同等', '', 'xp 4 to', -1 , $count);
echo $count; //3
?>
7.preg_replace_callback — 正規表現検索を実行し、コールバックを使用して置換します
mixed preg_replace_callback (mixed $pattern , callable $callback ,mixed $subject [, int $limit = -1 [, int &$count ]] )この関数の動作に加えて、コールバック置換を指定できます置換文字列の計算を実行し、それ以外の点では preg_replace() と同等です。 pattern:
検索するパターン。文字列または文字列の配列にすることができます。
callback:
置換が必要になるたびに呼び出されるコールバック関数。呼び出し時に関数によって取得されるパラメータは、サブジェクトから照合された結果です。コールバック関数は、実際に置換に関与する文字列を返します。
多くの場合、コールバック関数は preg_replace_callback() という 1 か所でのみ使用する必要があります。この場合、匿名関数を使用して、 preg_replace_callback() が呼び出されたときに匿名関数をコールバックとして定義できます。 こうすることで、すべての呼び出し情報を同じ場所に保持し、他では使用されていないコールバック関数名で関数の名前空間を汚すことがなくなります。
件名:
検索および置換する対象の文字列または文字列配列。
limit:
パターンごとの各対象文字列の置換の最大数。 デフォルトは -1 (制限なし) です。
count:
指定した場合、この変数には置換が実行された回数が設定されます。
例:
preg_replace_callback() と create_function():
$text = "エイプリルフールは 04/01/2002n";
$text.= "最後のクリスマスは 12/24/2001n";
// コールバック関数
function next_year($matches)
{
// 通常: $matches [0] が完了しました Match
// $matches[1] は最初にキャプチャされたサブグループの一致です
// 以下同様です
return $matches[1].($matches[2]+1);
}
/ **
*出力は次のとおりです:
*エイプリルフールは 2003 年 4 月 1 日です
*前回のクリスマスは 2002 年 12 月 24 日です
*/HECHO PREG_REPLACE_CALLBACK (
"| (D {2}/d {2}/) (d {4}) |" "来年",
$ Text); 2}/d {2}/) (d {4}) |", ",
create_function (
'$ 一致',
' return $ 一致 [1]。($ 一致 [2]+ 1);'
)、
$text);

phpssionscanStorestrings、numbers、arrays、andobjects.1.strings:textdatalikeusernames.2.numbers:integersorfloatsforcounters.3.arrays:listslikeshoppingcarts.4.objects:complextructuresthataresialized。

tostartaphpsession、outsession_start()atthescript'sbeginning.1)placeitbe foreanyouttosetthesscookie.2)usesionsionsionsionserdatalikelogintatussorshoppingcarts.3)再生セッションインドストップレベントフィックスアタック

セッション再生とは、新しいセッションIDを生成し、セッション固定攻撃の場合にユーザーが機密操作を実行するときに古いIDを無効にすることを指します。実装の手順には次のものが含まれます。1。感度操作を検出、2。新しいセッションIDを生成する、3。古いセッションIDを破壊し、4。ユーザー側のセッション情報を更新します。

PHPセッションは、アプリケーションのパフォーマンスに大きな影響を与えます。最適化方法には以下が含まれます。1。データベースを使用してセッションデータを保存して応答速度を向上させます。 2。セッションデータの使用を削減し、必要な情報のみを保存します。 3.非ブロッキングセッションプロセッサを使用して、同時実行機能を改善します。 4.セッションの有効期限を調整して、ユーザーエクスペリエンスとサーバーの負担のバランスを取ります。 5.永続的なセッションを使用して、データの読み取り時間と書き込み時間を減らします。

phpsesionsareserver-side、whilecookiesareclient-side.1)Sessionsionsionsoredataontheserver、aremoresecure.2)cookiesstoredataontheclient、cookiestoresecure、andlimitedinsizeisize.sesionsionsionivationivationivationivationivationivationivationivate

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック









