通过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 移除数组重复元素的一点说明
Nov 27 PHP
PHP中使用Imagick实现各种图片效果实例
Jan 21 PHP
php发送邮件的问题详解
Jun 22 PHP
基于PHP实现通过照片获取ip地址
Apr 26 PHP
thinkPHP基于ajax实现的菜单与分页示例
Jul 12 PHP
ThinkPHP实现登录退出功能
Jun 29 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
实例讲解PHP验证邮箱是否合格
Jan 28 PHP
phpstorm 配置xdebug的示例代码
Mar 31 PHP
PHP字符串与数组处理函数用法小结
Jan 07 PHP
php中加密解密DES类的简单使用方法示例
Mar 26 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
Apr 26 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下通过系统信号量加锁方式获取递增序列ID
2009/09/25 PHP
Smarty的配置与高级缓存技术分享
2012/06/05 PHP
php实现数组重复数字统计实例
2018/09/30 PHP
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
AJAX使用了UpdatePanel后无法使用alert弹出脚本
2010/04/02 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
jQuery固定元素插件scrolltofixed使用指南
2015/04/21 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
apicloud拉起小程序并传递参数的方法示例
2018/11/21 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
2019/04/16 Javascript
利用python程序生成word和PDF文档的方法
2017/02/14 Python
Python中的is和==比较两个对象的两种方法
2017/09/06 Python
Python中如何导入类示例详解
2019/04/17 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
2017/10/16 HTML / CSS
正宗的澳大利亚Ugg靴子零售商:UGG Express
2020/04/19 全球购物
NFL官方在线商店:NFLShop
2020/07/29 全球购物
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
理工科学生的自我评价
2013/12/15 职场文书
大学生优秀团员事迹材料
2014/01/30 职场文书
初中班主任评语
2014/04/24 职场文书
机械操作工岗位职责
2014/08/08 职场文书
运动员获奖感言
2014/08/15 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
2014年行政执法工作总结
2014/12/11 职场文书
介绍信的格式
2015/01/30 职场文书
大二学年个人总结
2015/03/03 职场文书
决心书格式及范文
2019/06/24 职场文书
社交电商模式的兴起:这些新的商机千万别错过
2019/07/26 职场文书
JavaScript 去重和重复次数统计
2021/03/31 Javascript
PHP实现两种排课方式
2021/06/26 PHP
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
2022/04/22 SQL Server
Vue2项目中对百度地图的封装使用详解
2022/06/16 Vue.js