通过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分页示例代码
Mar 19 PHP
使用PHP获取网络文件的实现代码
Jan 01 PHP
PHP之APC缓存详细介绍 apc模块安装
Jan 13 PHP
php实现无限级分类
Dec 24 PHP
php使用preg_match()函数验证ip地址的方法
Jan 07 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
Nov 20 PHP
通过源码解析Laravel的依赖注入
Jan 22 PHP
PHP封装的mysqli数据库操作类示例
Feb 16 PHP
关于laravel模板中生成URL的几种模式总结
Oct 18 PHP
如何在PHP中生成随机数
Jun 04 PHP
PHP解决高并发的优化方案实例
Dec 10 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
编写Smarty插件在模板中直接加载数据的详细介绍
2013/06/26 PHP
php ZipArchive压缩函数详解实例
2013/11/06 PHP
高性能PHP框架Symfony2经典入门教程
2014/07/08 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
ASP中进行HTML数据及JS数据编码函数
2009/11/11 Javascript
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
优化javascript的执行速度
2010/01/23 Javascript
jquery ajax return没有返回值的解决方法
2011/10/20 Javascript
JavaScript 产生不重复的随机数三种实现思路
2012/12/13 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
jQuery实现鼠标滑过点击事件音效试听
2015/08/31 Javascript
基于javascript实现表格的简单操作
2016/05/21 Javascript
HTML5canvas 绘制一个圆环形的进度表示实例
2016/12/16 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
2017/03/02 Javascript
layui 设置table 行的高度方法
2018/08/17 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
2020/07/22 Javascript
mustache.js实现首页元件动态渲染的示例代码
2020/12/28 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
2021/01/13 Vue.js
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
python 多线程实现检测服务器在线情况
2015/11/25 Python
老生常谈Python startswith()函数与endswith函数
2017/09/08 Python
浅谈python连续赋值可能引发的错误
2018/11/10 Python
python自动发邮件总结及实例说明【推荐】
2019/05/31 Python
python绘制评估优化算法性能的测试函数
2019/06/25 Python
linux环境下Django的安装配置详解
2019/07/22 Python
Pytorch 多维数组运算过程的索引处理方式
2019/12/27 Python
Python分类测试代码实例汇总
2020/07/23 Python
巴西香水和化妆品购物网站:The Beauty Box
2019/09/03 全球购物
技术负责人任命书
2014/06/05 职场文书
毕业生实习期转正自我鉴定
2014/09/26 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
无罪辩护词范文
2015/05/21 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书