目錄
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 不明白什麼意思的看最下邊的註解 學會三步以後 那麼你就掌握了 正規表示式的 號碼的正規...