通过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详解ASCII码对照表与字符转换
Dec 05 PHP
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
Mar 26 PHP
php上传文件中文文件名乱码的解决方法
Nov 01 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
May 05 PHP
php获取Google机器人访问足迹的方法
Apr 15 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
Mar 03 PHP
浅谈PHP的反射API
Feb 26 PHP
通过php动态传数据到highcharts
Apr 05 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
PHP设计模式之工厂方法设计模式实例分析
Apr 25 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
Dec 06 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 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
教你如何把一篇文章按要求分段
2006/10/09 PHP
paypal即时到账php实现代码
2010/11/28 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
2019/10/15 PHP
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
2015/02/04 Javascript
bootstrap学习笔记之初识bootstrap
2016/06/21 Javascript
jQuery实现6位数字密码输入框
2016/12/29 Javascript
从零开始学习Node.js系列教程三:图片上传和显示方法示例
2017/04/13 Javascript
AngularJS使用$http配置对象方式与服务端交互方法
2018/08/13 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
JavaScript设计模式--简单工厂模式定义与应用案例详解
2020/05/23 Javascript
[02:49]2018DOTA2亚洲邀请赛主赛事决赛日战况回顾 Mineski鏖战5局夺得辉耀
2018/04/10 DOTA
[01:51]开启你的城市传奇 完美世界城市挑战赛开始报名
2018/10/09 DOTA
利用scrapy将爬到的数据保存到mysql(防止重复)
2018/03/31 Python
python matplotlib实现双Y轴的实例
2019/02/12 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
2019/06/17 Python
pandas factorize实现将字符串特征转化为数字特征
2019/12/19 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
韩国演唱会订票网站:StubHub韩国
2019/01/17 全球购物
德国足球商店:OUTFITTER
2019/05/06 全球购物
Linux文件系统类型
2012/09/16 面试题
单位人事专员介绍信
2014/01/11 职场文书
C++程序员求职信范文
2014/04/14 职场文书
园艺师求职信
2014/04/27 职场文书
中考标语大全
2014/06/05 职场文书
英语专业自荐书
2014/06/13 职场文书
医院领导班子整改方案
2014/10/01 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
给老婆的检讨书(搞笑版)
2015/05/06 职场文书
神秘岛读书笔记
2015/07/01 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP
python实现简易自习室座位预约系统
2021/06/30 Python