通过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在程序中将网页生成word文档并提供下载的代码
Oct 09 PHP
PHP Error与Logging函数的深入理解
Jun 03 PHP
浅析php变量作用域的一些问题
Aug 08 PHP
php foreach循环中使用引用的问题
Nov 06 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
Apr 24 PHP
ThinkPHP3.1新特性之字段合法性检测详解
Jun 19 PHP
PHP在网页中动态生成PDF文件详细教程
Jul 05 PHP
php文件操作之小型留言本实例
Jun 20 PHP
常见PHP数据库解决方案分析介绍
Sep 24 PHP
php使用文本统计访问量的方法
May 12 PHP
php进行ip地址掩码运算处理的方法
Jul 11 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
May 05 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 include,include_once,require,require_once
2008/09/05 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
2016/01/07 PHP
PHP实现的文件上传类与用法详解
2017/07/05 PHP
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
2014/05/05 Javascript
JavaScript二维数组实现的省市联动菜单
2014/05/08 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
2015/08/26 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
2016/08/01 Javascript
zTree jQuery 树插件的使用(实例讲解)
2017/09/25 jQuery
vue中的scope使用详解
2017/10/29 Javascript
基于js中style.width与offsetWidth的区别(详解)
2017/11/12 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
在element-ui的select下拉框加上滚动加载
2019/04/18 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
2019/08/17 Javascript
jsonp格式前端发送和后台接受写法的代码详解
2019/11/07 Javascript
小程序接入腾讯位置服务的详细流程
2020/03/03 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
2020/05/23 Javascript
[38:30]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场2
2014/05/24 DOTA
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
Python实现的rsa加密算法详解
2018/01/24 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
Python unittest模块用法实例分析
2018/05/25 Python
python爬虫之urllib3的使用示例
2018/07/09 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
python实现批量修改文件名
2020/03/23 Python
生日寿宴答谢词
2014/01/19 职场文书
文科生自我鉴定
2014/02/15 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
求职简历自我评价2015
2015/03/10 职场文书
《落花生》教学反思
2016/02/16 职场文书