通过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中使用Oracle数据库(2)
Oct 09 PHP
用mysql触发器自动更新memcache的实现代码
Oct 11 PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
Jun 27 PHP
PHP写的获取各搜索蜘蛛爬行记录代码
Aug 21 PHP
php 字符串压缩方法比较示例
Jan 23 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
May 04 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
Jul 22 PHP
PHP简单创建压缩图的方法
Aug 24 PHP
php实现跨域提交form表单的方法【2种方法】
Oct 17 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
Apr 01 PHP
Laravel框架表单验证操作实例分析
Sep 30 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
Mar 24 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
各种咖啡的英文名子是什么
2021/03/03 新手入门
基于PHP制作验证码
2016/10/12 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
2017/06/22 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
laravel数据库查询结果自动转数组修改实例
2021/02/27 PHP
广告代码静态化js通用函数
2007/05/09 Javascript
用倒置滤镜把div倒置,再把table倒置。
2007/07/31 Javascript
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
JavaScript入门教程(3) js面向对象
2009/01/31 Javascript
ECMAScript 创建自己的js类库
2012/11/22 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
js中数组排序sort方法的原理分析
2014/11/20 Javascript
JS实现支持多选的遍历下拉列表代码
2015/08/20 Javascript
基于JS实现省市联动效果代码分享
2016/06/06 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
2017/06/05 Javascript
JS获取一个表单字段中多条数据并转化为json格式
2017/10/17 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
详解VSCode配置启动Vue项目
2019/05/14 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
2020/02/17 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
2020/10/22 Javascript
Python中第三方库Requests库的高级用法详解
2017/03/12 Python
python使用json序列化datetime类型实例解析
2018/02/11 Python
Python利用scapy实现ARP欺骗的方法
2019/07/23 Python
python面向对象 反射原理解析
2019/08/12 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
详解CSS3中border-image的使用
2015/07/18 HTML / CSS
不用游标的SQL语句有哪些
2012/09/07 面试题
个人安全承诺书
2014/05/22 职场文书
师范生自荐信模板
2014/05/28 职场文书
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书
教师学期末个人总结
2015/02/13 职场文书
入团申请书格式
2019/06/20 职场文书
vue如何批量引入组件、注册和使用详解
2021/05/12 Vue.js