程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 通過PHP自帶的服務器來查看正則匹配結果的方法

通過PHP自帶的服務器來查看正則匹配結果的方法

編輯:PHP綜合

眾所周知,PHP代碼需要web服務器來執行,要測試PHP代碼就得搭建一個web服務器,這就給我們平時學習帶來了較多不便。不過好在PHP v5.4版本以後,PHP會自帶一個功能簡單的web服務器。

啟動內置web服務器

首先,進入自定義的web文件夾,然後啟動內置web服務器:

cd ~/public_html
php -S localhost:8000

端口號8000是自定義的,換成其他未使用端口均可。

啟動後,控制界面如下所示:

20151224155528583.jpg (464×65)

測試內置服務器

在public_html文件夾下建立test.php,

<?php
phpinfo();
?>

然後在浏覽器中訪問localhost:8000/test.php,應該就可以看到php的信息頁面:

20151224155549670.png (614×202)

正則匹配
我們來看下PHP進行正則匹配的一個簡單例子:

<?php
$subject = 'abc3def';
$pattern = '/c\dde/';
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>

可以通過PHP的內置web服務器來查看運行結果,不出意外的話你可以看到如下輸出,


Array
(
  [0] => Array
  (
    [0] => c3de
    [1] => 2
  )
)

接下來我們來仔細分析這個代碼。

preg_match函數

preg_match函數的原型是int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )。其中pattern即為正則表達式,subject是被匹配的字符串,後面的都是可選參數。代碼中的PREG_OFFSET_CAPTURE即為flags值,作用就是將匹配結果的偏移量同匹配結果一起輸出至matches變量中,默認只將匹配結果輸出至matches中。關於該函數的詳細說明,請參看preg_match官方文檔。

正則表達式

代碼中的‘/c\def/'即為正則表達式,在大多數程序中,正則表達式都被置於兩個正斜槓之間。\d表示匹配數字,因此代碼中的正則表達式匹配的是c數字def的字符串。關於正則表達式的更多語法,可以參看正則表達式30分鐘入門教程。這裡順便提一點,正則表達式的第二個斜槓之後可以添加一個模式修飾符。最簡單的模式修飾符就是i,匹配時忽略大小寫。例如,正則表達式/def/匹配字符串abcDef會失敗,而/def/i匹配字符串abcDef則會成功。更多的模式修飾符可參看模式修飾符。

print_r函數

print_r函數打印一個變量易於理解的信息。不同於print和echo只能打印字符串、整型等普通變量,print_r還可以打印array變量以及object變量,並以易於理解的格式輸出。講到這再延伸講下,PHP中還有一個經常會用到的打印信息的函數,就是var_dump函數。正如函數的名稱一樣,這個函數經常在調試下使用,除了能打印變量的值,還能打印變量的類型。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved