通过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 相关文章推荐
Windows下PHP5和Apache的安装与配置
Sep 05 PHP
用PHP4访问Oracle815
Oct 09 PHP
php smarty 二级分类代码和模版循环例子
Jun 16 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
Jan 09 PHP
让codeigniter与swfupload整合的最佳解决方案
Jun 12 PHP
自定义session存储机制避免会话保持问题
Oct 08 PHP
PHP输出两个数字中间有多少个回文数的方法
Mar 23 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
Jul 25 PHP
PHP云打印类完整示例
Oct 15 PHP
ThinkPHP实现登录退出功能
Jun 29 PHP
浅谈PHP发送HTTP请求的几种方式
Jul 25 PHP
实例讲解PHP表单验证功能
Feb 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
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
discuz7 phpMysql操作类
2009/06/21 PHP
PHP 八种基本的数据类型小结
2011/06/01 PHP
PHP中设置时区方法小结
2012/06/03 PHP
php提取字符串中网站url地址的方法
2014/12/03 PHP
php实现Linux服务器木马排查及加固功能
2014/12/29 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
2017/06/05 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
详解PHP神奇又有用的Trait
2019/03/25 PHP
laravel框架查询数据集转为数组的两种方法
2019/10/10 PHP
很可爱的输入框
2008/08/03 Javascript
ExtJS Store的数据访问与更新问题
2010/04/28 Javascript
javascript对talbe进行动态添加、删除、验证实现代码
2012/03/29 Javascript
jquery中添加属性和删除属性
2015/06/03 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
2016/03/07 Javascript
原生JS实现垂直手风琴效果
2017/02/19 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
完美解决iview 的select下拉框选项错位的问题
2018/03/02 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
2020/04/09 Javascript
python实现文本文件合并
2015/12/29 Python
Python装饰器基础详解
2016/03/09 Python
Python如何实现文本转语音
2016/08/08 Python
Python实现学校管理系统
2018/01/11 Python
Flask框架WTForm表单用法示例
2018/07/20 Python
pycharm显示远程图片的实现
2019/11/04 Python
利用 Python ElementTree 生成 xml的实例
2020/03/06 Python
Django media static外部访问Django中的图片设置教程
2020/04/07 Python
python 日志模块 日志等级设置失效的解决方案
2020/05/26 Python
班会关于环保演讲稿
2013/12/29 职场文书
大学生作弊检讨书
2014/02/19 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
驻村工作简报
2015/07/20 职场文书
Golang 并发下的问题定位及解决方案
2022/03/16 Golang
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers