通过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 相关文章推荐
不用iconv库的gb2312与utf-8的互换函数
Oct 09 PHP
PHP网站提速三大“软”招
Oct 09 PHP
php桌面中心(四) 数据显示
Mar 11 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
Apr 24 PHP
phpmyadmin导入(import)文件限制的解决办法
Dec 11 PHP
PHP PDO函数库详解
Apr 27 PHP
php下mysql数据库操作类(改自discuz)
Jul 03 PHP
解析mysql left( right ) join使用on与where筛选的差异
Jun 18 PHP
PHP把JPEG图片转换成Progressive JPEG的方法
Jun 30 PHP
PHP中的reflection反射机制测试例子
Aug 05 PHP
详解PHP数据压缩、加解密(pack, unpack)
Dec 17 PHP
PHP读取文件或采集时解决中文乱码
Mar 09 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
我的论坛源代码(一)
2006/10/09 PHP
常见的PHP五种设计模式小结
2011/03/23 PHP
判断Keep-Alive模式的HTTP请求的结束的实现代码
2011/08/06 PHP
CURL状态码列表(详细)
2013/06/27 PHP
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
javascript实现二分查找法实现代码
2007/11/12 Javascript
JavaScript代码复用模式实例分析
2012/12/02 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
2017/01/05 Javascript
NodeJS 实现多语言的示例代码
2018/09/11 NodeJs
Vue.js中的组件系统
2019/05/30 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
JavaScript canvas实现雪花随机动态飘落
2020/02/08 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
2020/03/08 Javascript
react国际化化插件react-i18n-auto使用详解
2020/03/31 Javascript
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
python BeautifulSoup使用方法详解
2013/11/21 Python
使用 Python 获取 Linux 系统信息的代码
2014/07/13 Python
Python实现的检测网站挂马程序
2014/11/30 Python
Python3.6简单操作Mysql数据库
2017/09/12 Python
python实现人像动漫化的示例代码
2020/05/17 Python
CentOS 7如何实现定时执行python脚本
2020/06/24 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
weblogic面试题
2016/03/07 面试题
班组长工作职责
2013/12/25 职场文书
电子商务专业求职信
2014/03/08 职场文书
党员干部承诺书范文
2014/03/25 职场文书
小学学雷锋活动总结
2014/04/25 职场文书
节能宣传周活动总结
2014/05/08 职场文书
公务员个人考察材料
2014/12/23 职场文书
生活委员竞选稿
2015/11/21 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
SSM VUE Axios详解
2021/10/05 Vue.js