通过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的安全策略
Oct 09 PHP
php zlib压缩和解压缩swf文件的代码
Dec 30 PHP
PHP Document 代码注释规范
Apr 13 PHP
php中实现简单的ACL 完结篇
Sep 07 PHP
php清除和销毁session的方法分析
Mar 19 PHP
PHP传参之传值与传址的区别
Apr 24 PHP
php生成图片验证码
Jun 09 PHP
分享PHP函数实现数字与文字分页代码
Jul 28 PHP
PHP在线书签系统分享
Jan 04 PHP
PHP实现上一篇下一篇的方法实例总结
Sep 22 PHP
Laravel解决nesting level错误和隐藏index.php的问题
Oct 12 PHP
Laravel相关的一些故障解决
Aug 19 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新手的一些建议(PHP学习经验总结)
2014/08/20 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
PHP中PDO的事务处理分析
2016/04/07 PHP
PHP文件上传类实例详解
2016/04/08 PHP
php表单加入Token防止重复提交的方法分析
2016/10/10 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
PHP中的日期时间处理利器实例(Carbon)
2017/06/09 PHP
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
子窗体与父窗体传值示例js代码
2013/08/01 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
分享十三个最佳JavaScript数据网格库
2017/04/07 Javascript
解决AngualrJS页面刷新导致异常显示问题
2017/04/20 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
基于vue和bootstrap实现简单留言板功能
2020/05/30 Javascript
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
python中文编码问题小结
2014/09/28 Python
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
python微信公众号开发简单流程
2018/03/23 Python
pygame实现雷电游戏雏形开发
2018/11/20 Python
浅谈Django中view对数据库的调用方法
2019/07/18 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
基于Django快速集成Echarts代码示例
2020/12/01 Python
乌克兰时尚鞋子和衣服购物网站:Born2be
2018/05/24 全球购物
体育教师工作总结的自我评价
2013/10/10 职场文书
信息技术专业大学生职业生涯规划书
2014/01/24 职场文书
新书吧创业计划书
2014/01/31 职场文书
安全生产中长期规划实施方案
2014/02/21 职场文书
浪费资源的建议书
2014/03/12 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL
Golang日志包的使用
2022/04/20 Golang