検索

PHP規則性の内容概要(詳細)

Feb 15, 2019 pm 12:00 PM
php 正規

この記事の内容は、PHP の通常コンテンツを要約 (詳しく) したものであり、一定の参考価値がありますので、困っている方は参考にしていただければ幸いです。

1. 普段の基礎知識

行ロケーター (^ と $)

行ロケーターは、文字列の境界を記述するために使用されます。 「$」は行の終わりを表します。「^」は行の始まりを表します。たとえば、「^de」は de で始まる文字列を表し、「de$」は de で終わる文字列を表します。

単語区切り文字

文字列「グリルとボディ」に an が存在するかどうかなど、単語を検索する場合、それが一致する場合、an は間違いなく OK であることは明らかです。文字列「グリルとボディ」が一致します。単語の一部ではなく単語と一致させるにはどうすればよいですか?このとき、単語区切り文字 \b を使用できます。
\ban\b 「グリルとボディ」を一致させようとすると、一致できないことを示すメッセージが表示されます。
もちろん、大文字の \B もあります。これは \b の正反対の意味です。一致する文字列は完全な単語であることはできませんが、他の単語または文字列の一部となります。 \Ban\B など。

またはを表す文字 (|) を選択します。

またはを表す文字を選択します。たとえば、Aa|aA は Aa または aA を意味します。 「[]」と「|」の使用の違いは、「[]」は 1 文字のみと一致するのに対し、「|」は任意の長さの文字列と一致できることです。 「[]」を使用する場合は、a または b または c または d を表す [a-d] のように、接続文字「-」と一緒に使用されることがよくあります。

文字の除外、操作の除外

正規表現では、一致しない文字を除外するために「^」を指定します。^ は通常 [] の中に置かれます。たとえば、[^1-5] の場合、この文字は 1 から 5 までの数字ではありません。

修飾子 (?* {n, m})

修飾子は主に、各文字列の出現数を制限するために使用されます。

###意味### ? #*ゼロ回以上1 回以上 {n}n回{n,}少なくともn回{n,m}n から m 回たとえば、(D) は 1 つ以上の D
修飾文字
ゼロまたは 1 回

ドット演算子を表します

任意の文字 (改行文字を除く) と一致します

式内のバックスラッシュ (\)

式内のバックスラッシュには、エスケープや事前定義された文字セットの指定、アサーションの定義、非表示の表示など、複数の意味があります。印刷可能な文字。

エスケープ文字

エスケープ文字は主に一部の特殊文字を通常の文字に変換します。一般的に使用される特殊文字には、「.」、「?」、「\」などが含まれます。

事前定義された文字セットを指定します

Characters ###意味### \d任意の 10 進数 [0-9]\D10 進数以外の任意の数値 \s任意の空白文字 (スペース、ラインフィード、フォームフィード、キャリッジリターン、文字)\S空白以外の任意の文字\w任意の単語文字\W単語以外の文字
#印刷できない文字を表示する

文字

###意味### \a\bバックスペース\fページ変更\n改行\r ###入力### \t括弧文字 ()正規表現における括弧の主な機能は次のとおりです。例: (my|your)baby、"()" がない場合、| は my または yourbaby のいずれかに一致します。括弧を使用すると、mybaby または yourbaby に一致します。 簡単に後方参照できるグループ
###警察を呼んで下さい###
###キャラクター###
( などの修飾子を変更します) |, *, ^) スコープ
パターン修飾子

パターン修飾子の役割は、パターンを設定すること、つまり、正規表現をどのように使用するかを設定することです。説明する。 php の主なパターンは次のとおりです。


Modifier

イラスト

###############私###

大文字と小文字を無視する

m

複数テキストモードs単一行テキストモード ###バツ### 空白文字を無視する

U 遅延モード (デフォルトの貪欲モードは記述しないでください)

2. 一般的に使用される PHP の通常の関数と例

a. preg_grep() 関数

preg_grep 関数は、パターンに一致する配列エントリを返します。

構文

array preg_grep ( string $pattern , array $input [, int $flags = 0 ] )

パターン pattern に一致する、指定された配列入力内の要素で構成される配列を返します。

パラメータの説明:

  • $pattern: 文字列形式の検索対象のパターン。

  • #$input: 入力配列。

  • $flags: PREG_GREP_INVERT に設定すると、この関数は、指定されたパターン pattern に一致しない入力配列内の要素の配列を返します。

指定された一致する要素を配列内で返します:

<?php
$array = array(1, 2, 3.4, 53, 7.9);
// 返回所有包含浮点数的元素
$fl_array = preg_grep("/^(\d+)?\.\d+$/", $array);
print_r($fl_array);
?>

実行結果は次のとおりです:

Array
(
    [2] => 3.4
    [4] => 7.9
)

preg_grep は配列内の浮動小数点数のみを返すことがわかります。

b.preg_match() 関数

PHP 正規表現 (PCRE)

preg_last_error 関数は、正規表現の一致を実行するために使用されます。

構文

int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

パターンで指定された正規表現と一致する件名を検索します。

パラメータの説明:

$pattern: 文字列形式の検索対象のパターン。

$件名: 入力文字列。

$matches: パラメータ一致が指定されている場合、それが検索結果として入力されます。 $matches[0] には完全なパターンと一致するテキストが含まれ、$matches[1] には最初にキャプチャされたサブグループと一致するテキストが含まれます。

$flags: フラグは次のフラグ値に設定できます:

PREG_OFFSET_CAPTURE: このフラグが渡された場合、文字列オフセット (ターゲット文字列を基準とした)。注: これにより、matches パラメーターに入力された配列が変更され、各要素が 0 番目の要素が一致した文字列、最初の要素がターゲット文字列サブジェクト内の一致した文字列のオフセットとなる文字列になります。

offset: 通常、検索は対象文字列の先頭から開始されます。オプションのパラメータ offset は、ターゲット文字列内の未知の点から開始する検索を指定するために使用されます (単位はバイト)。

戻り値

パターンの一致数を返します。 preg_match() は最初の一致後に検索を停止するため、その値は 0 (一致なし) または 1 になります。 preg_match_all() は、サブジェクトを最後まで検索するという点でこれとは異なります。エラーが発生した場合、preg_match() は FALSE を返します。

テキスト文字列「php」を検索します:

<?php
//模式分隔符后的"i"标记这是一个大小写不敏感的搜索
if (preg_match("/php/i", "PHP is the web scripting language of choice."))
{
echo "查找到匹配的字符串 php。";
} else {
echo "未发现匹配的字符串 php。";
} ?>

実行結果は次のとおりです:

查找到匹配的字符串 php。

単語「word」を検索

<?php
/* 模式中的\b标记一个单词边界,所以只有独立的单词"web"会被匹配,而不会匹配 * 单词的部分内容比如"webbing" 或 "cobweb" */
if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
echo "查找到匹配的字符串。\n";
} else {
echo "未发现匹配的字符串。\n";
}
if (preg_match("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
echo "查找到匹配的字符串。\n";
} else {
echo "未发现匹配的字符串。\n";
} ?>

実行結果は次のとおりです。

查找到匹配的字符串。
未发现匹配的字符串。

URL 内のドメイン名を取得します。

<?php
// 从URL中获取主机名称
preg_match(&#39;@^(?:http://)?([^/]+)@i&#39;, "http://www.runoob.com/index.html", $matches);
$host = $matches[1];
// 获取主机名称的后面两部分
preg_match(&#39;/[^.]+\.[^.]+$/&#39;, $host, $matches);
echo "domain name is: {$matches[0]}\n";
?>

実行結果は次のとおりです。

domain name is: runoob.com

c.preg_match_all () function

PHP 正規表現 (PCRE)

preg_match_all 関数は、グローバル正規表現マッチングを実行するために使用されます。

構文

int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )

指定された正規表現パターンに一致する件名内のすべての一致結果を検索し、フラグで指定された順序で一致するものに出力します。

最初の一致が見つかった後、サブシーケンスは最後に一致した位置から検索を続けます。

パラメータの説明:

$pattern: 文字列形式の検索対象のパターン。

$subject: 入力文字列

$matches: 多次元配列、すべての一致結果を出力パラメータとして出力、配列のソートはフラグで指定されます。

$flags: 次のフラグと組み合わせて使用​​できます (PREG_PATTERN_ORDER と PREG_SET_ORDER は同時に使用できないことに注意してください):

PREG_PATTERN_ORDER: 結果は $matches[0] にソートされます] 完全なパターンのすべての一致を保存する場合は、$matches[ 1] 最初のサブグループのすべての一致を保存するなどです。

PREG_SET_ORDER: 結果は、$matches[0] には最初の一致からのすべての一致 (サブグループを含む) が含まれ、$matches[1] には 2 番目の一致からのすべての一致 (サブグループを含む) が含まれるように並べ替えられます。の上。

PREG_OFFSET_CAPTURE: このフラグが渡されると、見つかった各一致が、ターゲット文字列に対する相対的なオフセットを増加して返されます。

offset: 通常、検索は対象文字列の先頭から開始されます。オプションのパラメータ offset は、ターゲット文字列内の指定された位置から検索を開始するために使用されます (単位はバイト)。

戻り値

完全一致の数 (おそらく 0) を返します。エラーが発生した場合は FALSE を返します。

タグと タグに一致するコンテンツを見つけます: (通常は $pat_array[1] を取得します)

<?php
$userinfo = "Name: <b>PHP</b> <br> Title: <b>Programming Language</b>";
preg_match_all ("/<b>(.*)<\/b>/U", $userinfo, $pat_array);
print_r($pat_array[0]);
?>

実行結果は次のとおりです 表示:

Array
(
    [0] => <b>PHP</b>
    [1] => <b>Programming Language</b>
)

d. preg_replace() 関数

preg_replace 関数は、正規表現の検索と置換を実行します。

構文

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

パターンに一致する件名の部分を検索し、置換に置き換えます。

パラメータの説明:

$pattern: 検索するパターン。文字列または文字列配列にすることができます。

$replacement: 置換に使用される文字列または文字列の配列。

$subject: 検索および置換されるターゲット文字列または文字列配列。

$limit: オプション。パターンごとの各サブジェクト文字列の置換の最大数。デフォルトは -1 (制限なし) です。

$count: 可选,为替换执行的次数。(用于统计被替换的次数)

返回值

如果 subject 是一个数组, preg_replace() 返回一个数组, 其他情况下返回一个字符串。

如果匹配被查找到,替换后的 subject 被返回,其他情况下 返回没有改变的 subject。如果发生错误,返回 NULL。

实例

将 google 替换为 runoob

<?php
$string = &#39;google 123, 456&#39;;
$pattern = &#39;/(\w+) (\d+), (\d+)/i&#39;;
$replacement = &#39;runoob ${2},$3&#39;;
echo preg_replace($pattern, $replacement, $string);
?>

执行结果如下所示:

runoob 123,456

删除空格字符

<?php
$str = &#39;runo o b&#39;;
$str = preg_replace(&#39;/\s+/&#39;, &#39;&#39;, $str);
// 将会改变为&#39;runoob&#39; echo $str;
?>

执行结果如下所示:

runoob

使用基于数组索引的搜索替换

<?php
$string = &#39;The quick brown fox jumped over the lazy dog.&#39;;
$patterns = array();
$patterns[0] = &#39;/quick/&#39;;
$patterns[1] = &#39;/brown/&#39;;
$patterns[2] = &#39;/fox/&#39;;
$replacements = array();
$replacements[2] = &#39;bear&#39;;
$replacements[1] = &#39;black&#39;;
$replacements[0] = &#39;slow&#39;;
echo preg_replace($patterns, $replacements, $string);
?>

执行结果如下所示:

The bear black slow jumped over the lazy dog.

使用参数 count

<?php
$count = 0;
echo preg_replace(array(&#39;/\d/&#39;, &#39;/\s/&#39;), &#39;*&#39;, &#39;xp 4 to&#39;, -1 , $count);
echo $count; //3
?>

执行结果如下所示:

xp***to
3

e.preg_split() 函数

preg_replace 函数通过一个正则表达式分隔字符串。

语法

array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )

通过一个正则表达式分隔给定字符串。

参数说明:

$pattern: 用于搜索的模式,字符串形式。

$subject: 输入字符串。

$limit: 可选,如果指定,将限制分隔得到的子串最多只有limit个,返回的最后一个 子串将包含所有剩余部分。limit值为-1, 0或null时都代表"不限制", 作为php的标准,你可以使用null跳过对flags的设置。

$flags: 可选,可以是任何下面标记的组合(以位或运算 | 组合):

PREG_SPLIT_NO_EMPTY: 如果这个标记被设置, preg_split() 将进返回分隔后的非空部分。

PREG_SPLIT_DELIM_CAPTURE: 如果这个标记设置了,用于分隔的模式中的括号表达式将被捕获并返回。

PREG_SPLIT_OFFSET_CAPTURE: 如果这个标记被设置, 对于每一个出现的匹配返回时将会附加字符串偏移量. 注意:这将会改变返回数组中的每一个元素, 使其每个元素成为一个由第0 个元素为分隔后的子串,第1个元素为该子串在subject 中的偏移量组成的数组。

返回值

返回一个使用 pattern 边界分隔 subject 后得到的子串组成的数组。

实例

获取搜索字符串的部分

<?php
//使用逗号或空格(包含" ", \r, \t, \n, \f)分隔短语
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($keywords);
?>

执行结果如下所示:

Array
(
    [0] => hypertext
    [1] => language
    [2] => programming
)

将一个字符串分隔为组成它的字符

<?php
$str = &#39;runoob&#39;;
$chars = preg_split(&#39;//&#39;, $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

执行结果如下所示:

Array
(
    [0] => r
    [1] => u
    [2] => n
    [3] => o
    [4] => o
    [5] => b
)

分隔一个字符串并获取每部分的偏移量

<?php
$str = &#39;hypertext language programming&#39;;
$chars = preg_split(&#39;/ /&#39;, $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>

执行结果如下所示:

Array
(
    [0] => Array
        (
            [0] => hypertext
            [1] => 0
        )

    [1] => Array
        (
            [0] => language
            [1] => 10
        )

    [2] => Array
        (
            [0] => programming
            [1] => 19
        )

)

3.常用正则(参考作用)

一、校验数字的表达式 

1 数字:
^[0-9]*$
2 n位的数字:
^\d{n}$
3 至少n位的数字:
^\d{n,}$
4 m-n位的数字:
^\d{m,n}$
5 零和非零开头的数字:
^(0|[1-9][0-9]*)$
6 非零开头的最多带两位小数的数字:
^([1-9][0-9]*)+(.[0-9]{1,2})?$
7 带1-2位小数的正数或负数:
^(\-)?\d+(\.\d{1,2})?$
8 正数、负数、和小数:
^(\-|\+)?\d+(\.\d+)?$
9 有两位小数的正实数:
^[0-9]+(.[0-9]{2})?$
10 有1~3位小数的正实数:
^[0-9]+(.[0-9]{1,3})?$
11 非零的正整数:
^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
12 非零的负整数:
^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$
13 非负整数:
^\d+$ 或 ^[1-9]\d*|0$
14 非正整数:
^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
15 非负浮点数:
^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
16 非正浮点数:
^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
17 正浮点数:
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
18 负浮点数:
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
19 浮点数:
^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ 

二、校验字符的表达式

1 汉字:
^[\u4e00-\u9fa5]{0,}$
2 英文和数字:
^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
3 长度为3-20的所有字符:
^.{3,20}$
4 由26个英文字母组成的字符串:
^[A-Za-z]+$
5 由26个大写英文字母组成的字符串:
^[A-Z]+$
6 由26个小写英文字母组成的字符串:
^[a-z]+$
7 由数字和26个英文字母组成的字符串:
^[A-Za-z0-9]+$
8 由数字、26个英文字母或者下划线组成的字符串:
^\w+$ 或 ^\w{3,20}$
9 中文、英文、数字包括下划线:
^[\u4E00-\u9FA5A-Za-z0-9_]+$
10 中文、英文、数字但不包括下划线等符号:
^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
11 可以输入含有^%&',;=?$\"等字符:
[^%&',;=?$\x22]+
12 禁止输入含有~的字符:
[^~\x22]+ 

三、特殊需求表达式 

1. メール アドレス:
^\w ([- .]\w )*@\w ([-.]\w )*\.\w ([-.]\w )*$
2、ドメイン名:
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a- zA -Z0-9]{0,62}) /.?
3 、インターネット URL:
[a-zA-z] ://[^\s]* または ^http://([\ w -] \.) [\w-] (/[\w-./?%&=]*)?$
4、携帯電話番号:
^(13[0-9]|14 [5 |7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d {8 }$
5、電話番号 ("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"、および "XXXXXXXX)":
^(\ (\ d{3,4}-)|\d{3.4}-)?\d{7,8}$
6 国内電話番号 (0511-4405222、021-87888822):
\d{ 3} -\d{8}|\d{4}-\d{7}
7、ID 番号:
15 または 18 桁の ID 番号:
^\d{15}|\ d{ 18}$
15 桁の ID カード:
^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1] |2] \d)|3[0-1])\d{3}$
18 桁の ID カード:
^[1-9]\d{5}[1-9]\d {3}( (0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$
8.短い ID 番号 (数字と文字 x で終わる):
^([0-9]){7,18}(x|X)?$
または
^\d{8,18} |[0- 9x]{8,18}|[0-9X]{8,18}?$
9. アカウントは合法ですか (文字で始まり、5 ~ 16 バイトが許可され、英数字のアンダースコアが許可されます):
^[ a-zA-Z][a-zA-Z0-9_]{4,15}$
10、パスワード (文字で始まり、長さは 6 ~ 18、文字と数字のみを含めることができます)およびアンダースコア):
^[a-zA-Z]\w{5,17}$
11、強力なパスワード (大文字、小文字、数字の組み合わせを含む必要があり、特殊文字は使用できません)長さは 8 ~ 10) :
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
12 . 日付形式:
^ \d{4}-\d{1,2}-\d{1,2}
13. 1 年の 12 か月 (01~09 および 1~12):
^(0?[ 1-9]|1[0-2])$
14、月の 31 日 (01 ~ 09 および 1 ~ 31):
^((0?[1 -9])|(( 1|2)[0-9])|30|31)$
15. お金の入力形式:
16. 1. 受け入れることができるお金の表現は 4 つあります。 : "10000.00" と "10,000.00 "、および "10000" と "10,000" ("cent" なし):
^[1-9][0-9]*$
17. 2. これは、次の数値を意味します。は 0 で始まりません。ただし、これは文字「0」が渡されないことも意味するため、次の形式を使用します:
^(0|[1-9][0-9]*)$
18、3. a 0 または 0 で始まらない数値。先頭に負符号を使用することもできます:
^(0|-?[1-9][0-9]*)$
19, 4. これは、0 または負の可能性があり、0 で始まらない数値を意味します。ユーザーは 0 から始めましょう。また、お金を負にすることはできないため、負の符号も削除します。次に追加する必要があるもの可能な小数部分を説明するためです:
^[0-9] (.[0-9] )?$
20, 5. 小数点の後に少なくとも 1 桁が必要であることに注意してください。したがって、「10.」は渡されませんが、「10」と「10.2」は渡されます:
^[0-9] (.[0-9]{2})?$
21. 6.このように、ビットの後に小数点以下 2 つが必要であると規定していますが、厳しすぎると思われる場合は、次のようにすることもできます:
^[0-9] (.[0-9]{1,2} )?$
22. 7. これにより、ユーザーは小数点以下 1 桁だけを書くことができます。次に、数値内のカンマを考慮する必要があります。これを行うことができます:
^[0-9]{1,3}(, [0-9]{3})*(.[0-9] {1,2})?$
23、8.1 ~ 3 個の数値、その後に任意の数のカンマと 3 個の数値が続き、代わりにカンマはオプションになります必須のうち:
^([0-9] |[0 -9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2}) ?$
24. 注: これは最終結果です。空の文字列が受け入れられると思われる場合は、「 」を「*」に置き換えることができることを忘れないでください (奇妙です、なぜですか?) 最後に、次のことを忘れないでください。関数を使用するときはバックスラッシュを削除してください。よくある間違いはここです
25、xml ファイル:
^([a-zA-Z] -?) [a-zA-Z0-9] \\.[x| X][m|M][l|L]$
26. 漢字の正規表現:
[\u4e00-\u9fa5]
27. 全角文字:
[^\ x00-\xff]
(中国語の文字を含む) は、文字列の長さを計算するために使用できます (全角文字の長さは 2 としてカウントされ、ASCII 文字の長さは 1 としてカウントされます)。 )
28. 空白行の正規表現: \n\s*\r (空白行の削除に使用可能)
29、HTML タグの正規表現:
]*>.*?\1>|<.>30. 先頭および末尾の空白文字の正規表現: ^\s*|\s*$ または (^ \s*)|(\s*$) (空白文字を削除するために使用できます)行の先頭と末尾 (スペース、タブ、フォーム フィードなどを含む)、非常に便利な表現)
31、Tencent QQ 番号: [1-9][0-9]{4,} (Tencent QQ番号は 10000 から始まります)
32、中国の郵便番号: [1-9]\d{5}(?!\d) (中国の郵便番号は 6 桁です)
33。IP アドレス: \d \。 \d \.\d \.\d (IP アドレスを抽出するときに役立ちます)

以上がPHP規則性の内容概要(詳細)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はCSDNで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
セッションを保存するためにデータベースを使用することの利点は何ですか?セッションを保存するためにデータベースを使用することの利点は何ですか?Apr 24, 2025 am 12:16 AM

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでカスタムセッション処理をどのように実装しますか?PHPでカスタムセッション処理をどのように実装しますか?Apr 24, 2025 am 12:16 AM

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

セッションIDとは何ですか?セッションIDとは何ですか?Apr 24, 2025 am 12:13 AM

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

ステートレス環境(APIなど)でセッションをどのように処理しますか?ステートレス環境(APIなど)でセッションをどのように処理しますか?Apr 24, 2025 am 12:12 AM

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。

セッションに関連するクロスサイトスクリプティング(XSS)攻撃からどのように保護できますか?セッションに関連するクロスサイトスクリプティング(XSS)攻撃からどのように保護できますか?Apr 23, 2025 am 12:16 AM

セッション関連のXSS攻撃からアプリケーションを保護するには、次の測定が必要です。1。セッションCookieを保護するためにHTTPonlyとセキュアフラグを設定します。 2。すべてのユーザー入力のエクスポートコード。 3.コンテンツセキュリティポリシー(CSP)を実装して、スクリプトソースを制限します。これらのポリシーを通じて、セッション関連のXSS攻撃を効果的に保護し、ユーザーデータを確保できます。

PHPセッションのパフォーマンスを最適化するにはどうすればよいですか?PHPセッションのパフォーマンスを最適化するにはどうすればよいですか?Apr 23, 2025 am 12:13 AM

PHPセッションのパフォーマンスを最適化する方法は次のとおりです。1。遅延セッション開始、2。データベースを使用してセッションを保存します。これらの戦略は、高い並行性環境でのアプリケーションの効率を大幅に改善できます。

session.gc_maxlifetime構成設定とは何ですか?session.gc_maxlifetime構成設定とは何ですか?Apr 23, 2025 am 12:10 AM

thesession.gc_maxlifettinginttinginphpdethinesthelifsessessiondata、setinseconds.1)it'sconfiguredinphp.iniorviaini_set()。 2)AbalanceSneededToAvoidPerformanceIssues andunexpectedLogouts.3)php'sgarbagecollectionisisprobabilistic、影響を受けたBygc_probabi

PHPでセッション名をどのように構成しますか?PHPでセッション名をどのように構成しますか?Apr 23, 2025 am 12:08 AM

PHPでは、session_name()関数を使用してセッション名を構成できます。特定の手順は次のとおりです。1。session_name()関数を使用して、session_name( "my_session")などのセッション名を設定します。 2。セッション名を設定した後、session_start()を呼び出してセッションを開始します。セッション名の構成は、複数のアプリケーション間のセッションデータの競合を回避し、セキュリティを強化することができますが、セッション名の一意性、セキュリティ、長さ、設定タイミングに注意してください。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

メモ帳++7.3.1

メモ帳++7.3.1

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

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境