目錄
語法
實例
傳回值
尋找文字字串"php":
尋找單字"word"
取得URL 中的網域名稱
c.preg_match_all() 函數
尋找符合<b> 與</b> 標籤的內容:(自己常用取得$pat_array[1])
d. preg_replace() 函數
返回值
实例
将 google 替换为 runoob
删除空格字符
使用基于数组索引的搜索替换
使用参数 count
e.preg_split() 函数
语法
获取搜索字符串的部分
将一个字符串分隔为组成它的字符
分隔一个字符串并获取每部分的偏移量
3.常用正则(参考作用)
首頁 後端開發 php教程 php正規的內容摘要(詳細)

php正規的內容摘要(詳細)

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

這篇文章帶給大家的內容是關於php正規的內容總結(詳細),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

1.正規基礎知識

行定位符(^與$)

行定位符是用來描述字串的邊界。 「$」表示行結尾「^」表示行開始如"^de",表示以de開頭的字串 "de$",表示以de結尾的字串。

單字定界符

我們在尋找的一個單字的時候,如an是否在一個字串”gril and body」中存在,很明顯如果匹配的話,an肯定是可以匹配字串“gril and body”匹配到,怎樣才能讓其匹配單詞,而不是單字的一部分?這時候,我們可以是喲個單字定界符\b。 
\ban\b 去配對」gril and body」的話,就會提示配對不到。 
當然還有一個大寫的\B,它的意思,和\b正好相反,它匹配的字串不能使一個完整的單詞,而是其他單字或字串中的一部分。如\Ban\B。

選擇字元(|) ,表示或

選擇字元表示或的意思。如Aa|aA,表示Aa或aA的意思。注意使用”[]”與”|”的區別,在於”[]”只能匹配單個字符,而”|”可以匹配任意長度的字符串。在使用”[]”的時候,往往配合連接字符”-“一起使用,如[a-d],代表a或b或c或d。

排除字符,排除操作

正則表達式提供了”^”來表示排除不符合的字符,^一般放在[]中。如[^1-5],該字元不是1~5之間的數字。

限定符(?* {n,m})

限定符主要是用來限定每個字串出現的次數。

限定字元 意義
零次或一次
* 零次或多次
一次或多次
{n} #n次
{n,} ##至少n次
{n,m} n到m次

如(D )表示一個或多個D

點號運算子

符合任一個字元(不包含換行符號)

表達式中的反斜線(\)

#表達式中的反斜線有多重意義,如轉義、指定預先定義的字符集、定義斷言、顯示不列印的字元。

轉義字元

轉義字元主要是將一些特殊字元轉換為普通字元。而這些常用特殊字元有”.”,”?”、”\”等。

指定預先定義的字元集

字元 #意義
\d 任一個十進制數字[0-9]
\D 任一個非十進制數字
\s 任一個空白字元(空格、換行符號、換頁符號、回車符、字表符)
\S 任一個非空白字元
\w 任意一個單字字元
\W 任意個非單字字元

顯示不可列印的字元#字元意義\a警報\b退格\f換頁\n換行\r回車\t字表符

括號字元()

在正規表示式中小括號的作用主要有:


改變限定符如( |、* 、^)的作用範圍 

如(my|your)baby,如果沒有”()”,|將匹配的是要么是my,要么是yourbaby,有了小括號,匹配的就是mybaby或yourbaby。

進行分組,以便於反向引用

模式修飾符

#模式修飾符的作用是設定模式,也就是正規表示式如何解釋。 php中主要模式如下表:修飾符說明i忽略大小寫m多文字模式s單行文字模式忽略空白字元

#x

 
####

U      懶惰模式(不寫預設貪婪模式)

2.常用php正規函數及範例

a. preg_grep() 函數

#preg_grep 函數用於傳回符合模式的陣列條目。

語法

array preg_grep ( string $pattern , array $input [, int $flags = 0 ] )
登入後複製

傳回給定陣列 input 中與模式 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 ]]] )
登入後複製

搜尋 subject 與 pattern 給定的正規表示式的一個匹配。

參數說明:

$pattern: 要搜尋的模式,字串形式。

$subject: 輸入字串。

$matches: 如果提供了參數matches,它將被填入搜尋結果。 $matches[0]將包含完整模式匹配到的文本, $matches[1] 將包含第一個捕獲子組匹配到的文本,以此類推。

$flags:flags 可以被設定為以下標記值:

PREG_OFFSET_CAPTURE: 如果傳遞了這個標記,對於每一個出現的匹配返回時會附加字串偏移量(相對於目標字串的)。注意:這會改變填充到matches參數的數組,使其每個元素成為由第0個元素是匹配到的字串,第1個元素是該匹配字串在目標字串subject中的偏移量。

offset: 通常,搜尋會從目標字串的開始位置開始。可選參數 offset 用於 指​​定從目標字串的某個未知開始搜尋(單位是位元組)。

傳回值

傳回 pattern 的符合次數。它的值將是 0 次(不匹配)或 1 次,因為 preg_match() 在第一次匹配後 將會停止搜尋。 preg_match_all() 不同於此,它會一直搜尋subject 直到到達結尾。如果發生錯誤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() 函數

PHP 正規表示式(PCRE)

preg_match_all 函數用於執行一個全域正規表示式匹配。

語法

int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )
登入後複製

搜尋 subject 中所有符合 pattern 給定正規表示式的符合結果並且將它們以 flag 指定順序輸出到 matches 中。

在第一個匹配找到後, 子序列繼續從最後一次匹配位置搜尋。

參數說明:

$pattern: 要搜尋的模式,字串形式。

$subject: 輸入字串

$matches: 多維數組,作為輸出參數輸出所有匹配結果, 數組排序透過flags指定。

$flags:可以結合下面標記使用(注意不能同時使用PREG_PATTERN_ORDER和PREG_SET_ORDER):

PREG_PATTERN_ORDER: 結果排序為$matches[0]保存完整模式的所有匹配, $matches[ 1] 保存第一個子組的所有匹配,以此類推。

PREG_SET_ORDER: 結果排序為$matches[0]包含第一次匹配得到的所有匹配(包含子組), $matches[1]是包含第二次匹配到的所有匹配(包含子組)的數組,以此類推。

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 ]] )
登入後複製

搜尋 subject 中符合 pattern 的部分, 以 replacement 取代。

參數說明:

$pattern: 要搜尋的模式,可以是字串或字串陣列。

$replacement: 用於替換的字串或字串陣列。

$subject: 要搜尋已取代的目標字串或字串陣列。

$limit: 可選,對於每個模式用於每個 subject 字串的最大可替換次數。預設是-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、 Email位址:
^\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 、InternetURL:
[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 、身分證字號:
15或18位元身分證:
^\d{15}|\d{ 18}$
15位元身分證:
^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2] \d)|3[0-1])\d{3}$
18位元身分證:
^[1-9]\d{5}[1-9]\d{3}( (0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$
8、 短身分證號碼(數字、字母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、一年的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.有四種錢的表示形式我們可以接受:"10000.00" 和"10,000.00 ", 和沒有"分" 的"10000" 和"10,000":
^[1-9][0-9]*$ 
17、 2.這表示任一不以0開頭的數字,但是,這也意味著一個字元"0"不通過,所以我們採用下面的形式:
^(0|[1-9][0-9]*)$ 
18 、3.一個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.這樣我們規定小數點後面必須有兩位,如果你認為太苛刻了,可以這樣:
^[0-9] (.[0-9]{1,2})?$ 
22、7.這樣就允許用戶只寫一位小數.下面我們該考慮數字中的逗號了,我們可以這樣:
^[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標記的正規表示式:
<(\S*?)[^>]*>.*?|<.*? /> ; (網上流傳的版本太糟糕,上面這個也僅僅能部分,對於複雜的嵌套標記依舊無能為力)
30 、首尾空白字符的正則表達式:^\s*|\s*$或(^ \s*)|(\s*$) (可以用來刪除行首行尾的空白字元(包括空格、製表符、換頁符號等等),非常有用的表達式)
31 、騰訊QQ號:[1-9][0-9]{4,} (騰訊QQ號從10000開始)
32 、中國郵遞區號:[1-9]\d{5}(?!\d) (中國郵遞區號為6位數字)
33、 IP位址:\d \.\d \.\d \.\d (提取IP位址時有用)

以上是php正規的內容摘要(詳細)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

會話如何劫持工作,如何在PHP中減輕它? 會話如何劫持工作,如何在PHP中減輕它? Apr 06, 2025 am 12:02 AM

會話劫持可以通過以下步驟實現:1.獲取會話ID,2.使用會話ID,3.保持會話活躍。在PHP中防範會話劫持的方法包括:1.使用session_regenerate_id()函數重新生成會話ID,2.通過數據庫存儲會話數據,3.確保所有會話數據通過HTTPS傳輸。

描述紮實的原則及其如何應用於PHP的開發。 描述紮實的原則及其如何應用於PHP的開發。 Apr 03, 2025 am 12:04 AM

SOLID原則在PHP開發中的應用包括:1.單一職責原則(SRP):每個類只負責一個功能。 2.開閉原則(OCP):通過擴展而非修改實現變化。 3.里氏替換原則(LSP):子類可替換基類而不影響程序正確性。 4.接口隔離原則(ISP):使用細粒度接口避免依賴不使用的方法。 5.依賴倒置原則(DIP):高低層次模塊都依賴於抽象,通過依賴注入實現。

在PHPStorm中如何進行CLI模式的調試? 在PHPStorm中如何進行CLI模式的調試? Apr 01, 2025 pm 02:57 PM

在PHPStorm中如何進行CLI模式的調試?在使用PHPStorm進行開發時,有時我們需要在命令行界面(CLI)模式下調試PHP�...

如何在系統重啟後自動設置unixsocket的權限? 如何在系統重啟後自動設置unixsocket的權限? Mar 31, 2025 pm 11:54 PM

如何在系統重啟後自動設置unixsocket的權限每次系統重啟後,我們都需要執行以下命令來修改unixsocket的權限:sudo...

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

框架安全功能:防止漏洞。 框架安全功能:防止漏洞。 Mar 28, 2025 pm 05:11 PM

文章討論了框架中的基本安全功能,以防止漏洞,包括輸入驗證,身份驗證和常規更新。

See all articles