php如何對preg(PHP如何對輸入的秘密進行加密)

本文目錄一覽:

PHP函數preg_match_all正則表達式的基本使用詳細解析

了解正則表達式之前,須要掌握一些常用的正則表達式的基礎知識,這些如果能記得最好記得,記不住須要用的時候能查到就行,就多個特殊字元,所以說正則表達式玩的就是特殊,具體大家可以查看更加細緻的說明。

preg_match_all函數具體說明大家可以查看PHP手冊,本文運用

preg_match_all用於測試正則表達的效果。

實例代碼:

複製代碼

代碼如下:

$html

=

‘div

id=”biuuu”jb51.net/divdiv

id=”biuuu_2″jb51.net2/divdiv

id=”biuuu_3″jb51.net3/div’;

實例要求:分別將每一個DIV元素的ID和內容取出,如biuuu,biuuu_2,biuuu_3,jb51.net,jb51.net2和jb51.net3(一些常用的抓站要領就是這樣匹配的)

分析:字元串是一個基本的HTML元素,每一個DIV元素對應該一個ID和內容,並且是獨立的,首先考慮如何

取出一個DIV內的ID值和內容,如:jb51.net,然後匹配其它類似的元素。一個DIV中須要取出兩個值,也就是兩個匹配的表達式,第一個表達式用於匹配ID值(biuuu),第二個表達式用於匹配ID的內容(jb51.net),正則表達式常用的表達式運用小括弧,那麼前面的元素將會變成如下形式:

div

id=”(biuuu)”(jb51.net)/div

div

id=”(表達式1)”(表達式2)/div

好,運用如上小括弧把須要匹配的區域執行

了劃分,接下來就是如何

匹配各個表達式內的內容,我們猜想一個ID可能是字母,數字或下劃線,那這就變得基本了,運用中括弧就可以實現,如下:

表達式1:[a-zA-Z0-9_]+

(表示匹配大小寫字母,數字和下劃線)

那如何

匹配表達式2,因為ID的內容可以是任意的字元,但是要留心,不能匹配或字元,因為如果匹配這兩個字元將會把後面運用的DIV都匹配出來,因此須要排除這兩個字元開始的元素,也就是不匹配以或字元,如下:

表達式2:[^]+

(表示不匹配和字元)

這樣,須要匹配的子表達式就實現了,但是還要須要匹配一個

的表達式,要領如下:

表達式:/

‘\”(表達式1)\”‘(表達式2)\/div/

留心其中的雙引號”和/須要運用

\轉義字元轉義,然後把前面兩個表達式放進去,

如下:

‘\”([a-z0-9_]+)\”‘/div

id=\”([a-z0-9_]+)\”([^]+)\/div/

這樣就實現一個匹配每一個DIV元素ID值和內容的正則表達式,然後運用

preg_match_all函數測試如下:

複製代碼

代碼如下:

$html

=

‘div

id=”biuuu”jb51.net/divdiv

id=”biuuu_2″jb51.net2/divdiv

id=”biuuu_3″jb51.net3/div’;

preg_match_all(‘/div\sid=\”([a-z0-9_]+)\”([^]+)\/div/’,$html,$result);

var_dump($result);

結果:

複製代碼

代碼如下:

array(3)

{

[0]=

array(3)

{

[0]=

string(30)

“div

id=”biuuu”jb51.net/div”

[1]=

string(33)

“div

id=”biuuu_2″jb51.net2/div”

[2]=

string(33)

“div

id=”biuuu_3″jb51.net3/div”

}

[1]=

array(3)

{

[0]=

string(5)

“biuuu”

[1]=

string(7)

“biuuu_2”

[2]=

string(7)

“biuuu_3”

}

[2]=

array(3)

{

[0]=

string(8)

“jb51.net”

[1]=

string(9)

“jb51.net2”

[2]=

string(9)

“jb51.net3”

}

}

共有三個表達式,分別顯示每一個表達式匹配的值,並以數組的形式存儲,這樣就把每一個DIV元素的ID和內容取出。運用正則表達式最主要還是要知道須要什麼,然後跟椐須要執行

匹配,並且思路清晰,並適當的藉助preg_match_all函數執行

輸出調試,非常方便。

PHP正則相關的幾個preg函數

preg_match: 字元串比對解析。

preg_match_all: 字元串整體比對解析。

preg_replace: 字元串比對解析並取代。

preg_split: 將字元串依指定的規則切開。

preg_match

字元串比對解析。

語法: int preg_match(string pattern, string subject, array [matches]);

返回值: 整數/數組

函數種類: 資料處理

內容說明: 本函數以 pattern 的規則來解析比對字元串 subject。比對結果返回的值放在數組參數 matches 之中,matches[0] 內容就是原字元串 subject、matches[1] 為第一個合乎規則的字元串、matches[2] 就是第二個合乎規則的字元串,余類推。若省略參數 matches,則只是單純地比對,找到則返回值為 true。

如何運用PHP函數preg

對於初學者來說,大家對 說明 array preg_split ( string $pattern, string $subject [, int $limit [, int $flags]] )

返回一個數組,包含 subject 中沿著與 pattern 匹配的邊界所分割的子串。

如果指定了 limit,則最多返回 limit 個子串,如果 limit 是 -1,則意味著沒有限制,可以用來繼續指定可選參數 flags。

flags 可以是下列標記的任意組合(用按位或運算符 | 組合):

PREG_SPLIT_NO_EMPTY

如果設定了本標記,則 preg_split() 只返回非空的成分。

PREG_SPLIT_DELIM_CAPTURE

如果設定了本標記,定界符模式中的括弧表達式也會被捕獲並返回。本標記添加於 PHP 4.0.5。

PREG_SPLIT_OFFSET_CAPTURE

如果設定了本標記,如果設定本標記,對每個出現的匹配結果也同時返回其附屬的字元串偏移量。注意這改變了返回的數組的值,使其中的每個單元也是一個數組,其中第一項為匹配字元串,第二項為其在 subject 中的偏移量。本標記自 PHP 4.3.0 起可用。

提示

如果不需要正則表達式的功能,可以選擇使用更快(也更簡單)的替代函數如 explode() 或 str_split()。

例 1672. PHP函數preg_split例子:取得搜索字元串的成分

// split the phrase by any number of commas or space characters,

// which include ” “, r, t, n and f

$keywords = preg_split (“/[s,]+/”, “hypertext language, programming”);

?

例 1673.PHP函數preg_split 將字元串分割成字元

$str = ‘string’;

$chars = preg_split(‘//’, $str, -1, PREG_SPLIT_NO_EMPTY);

print_r($chars);

?

例 1674. PHP函數preg_split將字元串分割為匹配項及其偏移量

$str = ‘string’;

$chars = preg_split(‘//’, $str, -1, PREG_SPLIT_NO_EMPTY);

print_r($chars);

?

PHP函數preg_split例子將輸出:

Array( [0] =

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

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

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

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/256887.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:42
下一篇 2024-12-15 12:42

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台伺服器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24
  • PHP數組去重詳解

    一、array_unique函數 array_unique是php中常用的數組去重函數,它基於值來判斷元素是否重複,具體使用方法如下: $array = array(‘a’, ‘b…

    編程 2025-04-24
  • PHP導出Excel文件

    一、PHP導出Excel文件列寬調整 當我們使用PHP導出Excel文件時,有時需要調整單元格的列寬。可以使用PHPExcel類庫中的setWidth方法來設置單元格的列寬。下面是…

    編程 2025-04-24
  • php擴展庫初探

    一、什麼是php擴展庫? PHP擴展庫(PHP extension)是一些用C語言編寫的動態鏈接庫,用於擴展PHP的功能。PHP擴展庫使得PHP可以與各種資料庫系統相連、SMTP、…

    編程 2025-04-23

發表回復

登錄後才能評論