通过PHP自带的服务器来查看正则匹配结果的方法


Posted in PHP onDecember 24, 2015

众所周知,PHP代码需要web服务器来执行,要测试PHP代码就得搭建一个web服务器,这就给我们平时学习带来了较多不便。不过好在PHP v5.4版本以后,PHP会自带一个功能简单的web服务器。

启动内置web服务器

首先,进入自定义的web文件夹,然后启动内置web服务器:

cd ~/public_html
php -S localhost:8000

端口号8000是自定义的,换成其他未使用端口均可。

启动后,控制界面如下所示:

通过PHP自带的服务器来查看正则匹配结果的方法

测试内置服务器

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

<?php
phpinfo();
?>

然后在浏览器中访问localhost:8000/test.php,应该就可以看到php的信息页面:

通过PHP自带的服务器来查看正则匹配结果的方法

正则匹配
我们来看下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函数。正如函数的名称一样,这个函数经常在调试下使用,除了能打印变量的值,还能打印变量的类型。

PHP 相关文章推荐
PHP新手上路(三)
Oct 09 PHP
菜鸟学PHP之Smarty入门
Jan 04 PHP
php socket方式提交的post详解
Jul 19 PHP
PHP开发中的错误收集,不定期更新。
Feb 03 PHP
PHP中英混合字符串截取函数代码
Jul 17 PHP
php 短链接算法收集与分析
Dec 30 PHP
php设计模式之单例模式使用示例
Jan 20 PHP
php将文本文件转换csv输出的方法
Dec 31 PHP
深入理解php printf() 输出格式化的字符串
May 23 PHP
PHP多进程编程之僵尸进程问题的理解
Oct 15 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
Mar 22 PHP
TP5多入口设置实例讲解
Dec 15 PHP
在openSUSE42.1下编译安装PHP7 的方法
Dec 24 #PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
Dec 24 #PHP
PHP实现文件上传和多文件上传
Dec 24 #PHP
纯PHP代码实现支付宝批量付款
Dec 24 #PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
Dec 24 #PHP
4种PHP异步执行的常用方式
Dec 24 #PHP
php实现异步数据调用的方法
Dec 24 #PHP
You might like
PHP 反向排序和随机排序代码
2010/06/30 PHP
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
2012/08/09 PHP
php删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
PHP中ini_set与ini_get用法实例
2014/11/04 PHP
php实现指定字符串中查找子字符串的方法
2015/03/17 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
jquery中的查找parents与closest方法之间的区别
2013/12/02 Javascript
JS实现适合于后台使用的动画折叠菜单效果
2015/09/21 Javascript
jQuery基于cookie实现的购物车实例分析
2015/12/24 Javascript
JavaScript动态检验密码强度的实现方法
2016/11/09 Javascript
mac下的nodejs环境安装的步骤
2017/05/24 NodeJs
Node.js利用断言模块assert进行单元测试的方法
2017/09/28 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
实例讲解v-if和v-show的区别
2019/01/31 Javascript
详解React项目如何修改打包地址(编译输出文件地址)
2019/03/21 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
基于PHP pthreads实现多线程代码实例
2020/06/24 Javascript
jQuery zTree如何改变指定节点文本样式
2020/10/16 jQuery
[03:11]完美世界DOTA2联赛PWL DAY8集锦
2020/11/09 DOTA
python中函数默认值使用注意点详解
2016/06/01 Python
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
python中的常量和变量代码详解
2018/07/25 Python
django的ORM操作 删除和编辑实现详解
2019/07/24 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
Python操控mysql批量插入数据的实现方法
2020/10/27 Python
html5标记文字_动力节点Java学院整理
2017/07/11 HTML / CSS
华为c/c++笔试题
2016/01/25 面试题
土木工程建筑专业毕业生求职信
2013/10/21 职场文书
五十岁生日宴会答谢词
2014/01/15 职场文书
幼儿园师德演讲稿
2014/05/06 职场文书
查摆问题自我剖析材料
2014/08/18 职场文书
房产分割协议书范文
2014/11/21 职场文书
保外就医申请书范文
2015/08/06 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
Python上下文管理器Content Manager
2021/06/26 Python