PHPDay0F 正規表示式,CURL

2021-10-02 07:28:43 字數 4746 閱讀 5724

目錄

0x00 正規表示式

0x01 常用正規表示式總結

0x02 貪婪模式和非貪婪模式

0x03 php中使用正規表示式

1.int preg_match(string $pattern,string $subject[,array $matches])

2. int preg_match_all(string $pattern,$string $obj[,array $matches])

0x04php擴充套件庫curl

正規表示式是一種特殊的字串模式,用於匹配一組字串,就好比用模具做產品,而正則就是這個模具。定義一種規則去匹配符合規則的字串。

正規表示式可以用來:

驗證字串是否匹配指定特徵

用來查詢字串

用來替換

正規表示式由普通字元和元字元組成

普通字元符:字母、數字、下劃線以及沒有被定義特殊意義的標點符號都是普通字元

元字元:

字元集合:

可以匹配多個字元其中任意乙個字元的正規表示式,雖然是「多個字元」但是每次只能匹配乙個

字元集合說明.

除\n之外的任意乙個字元

\w可以匹配任意乙個字母、數字、下劃線[a-za-z0-9_]

\w匹配\w的補集

\d[0-9_]

\d\d的補集

\s空格,製表符,換頁符

\s\s的補集

[:alpha:]

任何乙個字母

[:^alpha:]

[:alpha:]的補集

量詞(匹配次數限定符):

量詞說明

表示式固定重複n次

表示式至少重複m次,最多重複n次,盡可能多匹配

至少m次,最多不限,盡可能多匹配

?盡可能匹配1次,也可以不匹配

+盡可能多匹配,最少匹配1次

*表示式盡可能多匹配,最少可以不匹配

字元邊界:

本身不匹配任何字元,只對字元邊界和字元間縫隙附加條件的表示式

邊界條件說明^

當前位置必須是文字開始位置

$當前位置必須是文字結束位置

\b當前位置的左右兩側,只能有一側是字母數字或者下劃線

其他常用的字元:

使用豎線『|』分隔多段表示式,整個表示式可以匹配其中的任意一段

用括號進行分組 ()

轉義 \ ,例如想要匹配. 那麼 \. 就可以匹配點

[abc]同a|b|c

[a-z] 匹配a-z的字母

[^a-z] [a-z]的補集

匹配使用者名稱長度6-10數字字母下劃線:^\w$

匹配手機號碼:^1[345678](\d)$

貪婪匹配:正規表示式一般趨向於最大長度匹配

非貪婪匹配:匹配到結果就好,盡可能少的匹配

預設為貪婪匹配;在量詞之後加上乙個?就是非貪婪匹配

解釋:php regex match

$pattern 正規表示式 在php中正規表示式必須用兩個/給包圍起來

$subject  要匹配的字串

$matches 匹配的結果,字串中符合pattern的部分

該函式返回值為int型別,即如果匹配成功就返回1,如果匹配失敗就返回0

<?php

$str = 'hello123world';

$pattern = '/^.+?(\d+).+$/';

$ret = preg_match($pattern,$str,$result);

var_dump($ret);

var_dump($result);

?>

結果:

int(1) array(2)

爬千庫網的

複習:$string file_get_contents($string url) 可以獲得網頁的源**

@匹配所有符合正規表示式的字串

@返回值為匹配到的個數

@matches是匹配到的結果,是乙個二維陣列

<?php

function showpicture($url)

}//$url = "";

//showpicture($url);

for($page =8688;$page < 8690;$page++)

}?>

1.確認curl擴充套件已經開啟.

php.ini中extension=php_curl.dll

2.檢視是否開啟

phpinfo();

使用curl:

1.初始化

resource curl_init([string $url=null]):

初始化新的會話,返回curl的控制代碼,供curl_setopt(),curl_exec()和curl_close()函式使用

2.設定變數

bool curl_setopt(resource $ch,int $option,mixed $value);

$ch:資源控制代碼

$option: 設定哪個變數

curlopt_url 表示設定url

curlopt_returntransfer 當該屬性設定為true時,獲取的頁面資訊將不會輸出,而是以字串的形式作為curl_exec的返回值返回

curlopt_followlocation 當該屬性設定為true時,指令碼會跟隨請求頁面的跳轉而跳轉

curlopt_cookiejar  連線結束後,比如,呼叫 curl_close 後,儲存 cookie 資訊的檔案。

$value:設定的值為多少

為curl會話設定選項

3.執行獲取結果

mixed curl_exec(resource $ch);

4.釋放資源

void curl_close(resource $ch)

關閉curl會話並釋放所有資源,curl控制代碼ch也會被刪除。

?>以上操作預設傳送get請求

0x05curl模擬post請求

curlopt_post

curlopt_postfields:

feild就是域,欄位的意思。因為post請求一般要傳送資料。

用乙個陣列將資料儲存起來,然後將陣列設定為curlopt_postfields的值。

這個陣列就會被post請求給傳送過去

資料可以寫成陣列的形式,也可以寫成字串的形式,不同資料之間用&連線

例如:$data = "name=liming&pwd=12313";

模擬使用者登入實戰:

注意:一般情況下,登入頁面都會儲存session資訊,而session值的訪問是以cookie為基礎的,所以在post請求的時候,不僅僅要傳遞post引數,而且讓請求報文自動攜帶請求頁面產生的cookie資訊。

order("www.baidu.com/order.php")//請求訂單頁面

?>0x05 curlfile類模擬檔案上傳

php版本高於5.5時,curl檔案上傳必須使用curlfile類

正規表示式學習 0

literal 匹配字串的字面值 re1 re2 匹配正規表示式re1或者re2 擇一匹配,或邏輯 匹配任意字元 除 n 匹配字串起始部分 以該字串為起始串 匹配字串結束部分 以該字串為結尾串 匹配0次或者多次前面出現的正規表示式 匹配一次或者多次前面出現的正規表示式 標題 匹配0次或者一次前面出現...

正規表示式入門 0

學習使用的教材是,學習正規表示式 美 michael fitzgerald 作者 王熱宇 譯 人民郵電出版社 只是感興趣學習,畢竟好多地方都支援正規表示式,也為以後可能會使用,做一些入門基礎準備。方括號被正規表示式視為特殊的元字元 類似於程式語言中的保留字 0 7 這種形式的正規表示式稱作字元組 或...

正規表示式 大於等於0

system.out.println 大於0的正整數 0.001 matches 1 9 d 0 9 1 9 0 0 9 1 9 0 正規表示式 最簡單易懂的正規表示式 只需要三步 第一步 第二步 第三步 d w 不明白什麼意思的看最下邊的註解 學會三步以後 那麼你就掌握了 正規表示式的 號碼的正規...