通過PHP自帶的服務(wù)器來查看正則匹配結(jié)果的方法
眾所周知,PHP代碼需要web服務(wù)器來執(zhí)行,要測試PHP代碼就得搭建一個web服務(wù)器,這就給我們平時學(xué)習(xí)帶來了較多不便。不過好在PHP v5.4版本以后,PHP會自帶一個功能簡單的web服務(wù)器。
啟動內(nèi)置web服務(wù)器
首先,進(jìn)入自定義的web文件夾,然后啟動內(nèi)置web服務(wù)器:
cd ~/public_html php -S localhost:8000
端口號8000是自定義的,換成其他未使用端口均可。
啟動后,控制界面如下所示:
測試內(nèi)置服務(wù)器
在public_html文件夾下建立test.php,
<?php phpinfo(); ?>
然后在瀏覽器中訪問localhost:8000/test.php,應(yīng)該就可以看到php的信息頁面:
正則匹配
我們來看下PHP進(jìn)行正則匹配的一個簡單例子:
<?php $subject = 'abc3def'; $pattern = '/c\dde/'; preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE); print_r($matches); ?>
可以通過PHP的內(nèi)置web服務(wù)器來查看運(yùn)行結(jié)果,不出意外的話你可以看到如下輸出,
Array ( [0] => Array ( [0] => c3de [1] => 2 ) )
接下來我們來仔細(xì)分析這個代碼。
preg_match函數(shù)
preg_match函數(shù)的原型是int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )。其中pattern即為正則表達(dá)式,subject是被匹配的字符串,后面的都是可選參數(shù)。代碼中的PREG_OFFSET_CAPTURE即為flags值,作用就是將匹配結(jié)果的偏移量同匹配結(jié)果一起輸出至matches變量中,默認(rèn)只將匹配結(jié)果輸出至matches中。關(guān)于該函數(shù)的詳細(xì)說明,請參看preg_match官方文檔。
正則表達(dá)式
代碼中的‘/c\def/'即為正則表達(dá)式,在大多數(shù)程序中,正則表達(dá)式都被置于兩個正斜杠之間。\d表示匹配數(shù)字,因此代碼中的正則表達(dá)式匹配的是c數(shù)字def的字符串。關(guān)于正則表達(dá)式的更多語法,可以參看正則表達(dá)式30分鐘入門教程。這里順便提一點(diǎn),正則表達(dá)式的第二個斜杠之后可以添加一個模式修飾符。最簡單的模式修飾符就是i,匹配時忽略大小寫。例如,正則表達(dá)式/def/匹配字符串a(chǎn)bcDef會失敗,而/def/i匹配字符串a(chǎn)bcDef則會成功。更多的模式修飾符可參看模式修飾符。
print_r函數(shù)
print_r函數(shù)打印一個變量易于理解的信息。不同于print和echo只能打印字符串、整型等普通變量,print_r還可以打印array變量以及object變量,并以易于理解的格式輸出。講到這再延伸講下,PHP中還有一個經(jīng)常會用到的打印信息的函數(shù),就是var_dump函數(shù)。正如函數(shù)的名稱一樣,這個函數(shù)經(jīng)常在調(diào)試下使用,除了能打印變量的值,還能打印變量的類型。
- 正則匹配密碼只能是數(shù)字和字母組合字符串功能【php與js實(shí)現(xiàn)】
- PHP正則匹配日期和時間(時間戳轉(zhuǎn)換)的實(shí)例代碼
- PHP入門教程之正則表達(dá)式基本用法實(shí)例詳解(正則匹配,搜索,分割等)
- php正則匹配文章中的遠(yuǎn)程圖片地址并下載圖片至本地
- PHP中preg_match函數(shù)正則匹配的字符串長度問題
- PHP中preg_match正則匹配中的/u、/i、/s含義
- php正則匹配html中帶class的div并選取其中內(nèi)容的方法
- 關(guān)于php正則匹配漢字的方法介紹
- PHP正則匹配圖片并給圖片加鏈接詳解
- php 正則匹配函數(shù)體
- PHP正則匹配反斜杠''\''和美元''$''的方法
相關(guān)文章
5種PHP創(chuàng)建數(shù)組的實(shí)例代碼分享
在本文將數(shù)組的各種創(chuàng)建方式用PHP實(shí)例代碼的方式分享給大家,感興趣的朋友可以了解下2014-01-01采用memcache在web集群中實(shí)現(xiàn)session的同步會話
這篇文章主要介紹了采用memcache在web集群中實(shí)現(xiàn)session的同步會話,需要的朋友可以參考下2014-07-07PHP數(shù)組操作實(shí)例分析【添加,刪除,計(jì)算,反轉(zhuǎn),排序,查找等】
這篇文章主要介紹了PHP數(shù)組操作,結(jié)合實(shí)例形式分析php針對數(shù)組的添加,刪除,計(jì)算,反轉(zhuǎn),排序,查找等操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-12-12PHP實(shí)現(xiàn)執(zhí)行外部程序的方法詳解
這篇文章主要介紹了PHP實(shí)現(xiàn)執(zhí)行外部程序的方法,結(jié)合實(shí)例形式分析了php執(zhí)行外部程序的常用函數(shù)相關(guān)使用技巧與注意事項(xiàng),需要的朋友可以參考下2017-08-08解決PHP在DOS命令行下卻無法鏈接MySQL的技術(shù)筆記
前段時間,由于要用 php 進(jìn)行 Shell 編程時,碰到了 PHP 在 WEB 下可以連接 MySQL 而在 DOS COMMAND 命令行下卻連接失敗的問題。2010-12-12編寫PHP腳本使WordPress的主題支持Widget側(cè)邊欄
這篇文章主要介紹了編寫PHP腳本使WordPress的主題支持Widget側(cè)邊欄的方法,這里以一列兩列的側(cè)邊欄為例可以以此類推更多列的寫法,需要的朋友可以參考下2015-12-12