通过PHP自带的服务器来查看正则匹配结果的方法
2015-12-24 00:00
751 查看
众所周知,PHP代码需要web服务器来执行,要测试PHP代码就得搭建一个web服务器,这就给我们平时学习带来了较多不便。不过好在PHP v5.4版本以后,PHP会自带一个功能简单的web服务器。
启动内置web服务器
首先,进入自定义的web文件夹,然后启动内置web服务器:
端口号8000是自定义的,换成其他未使用端口均可。
启动后,控制界面如下所示:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201601/dacafafc0557261cae98d92f796606fb)
测试内置服务器
在public_html文件夹下建立test.php,
然后在浏览器中访问localhost:8000/test.php,应该就可以看到php的信息页面:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201601/da7aeaa330020dc310bce4b522f42df5)
正则匹配
我们来看下PHP进行正则匹配的一个简单例子:
可以通过PHP的内置web服务器来查看运行结果,不出意外的话你可以看到如下输出,
接下来我们来仔细分析这个代码。
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在各种web服务器的运行模式详解
启动内置web服务器
首先,进入自定义的web文件夹,然后启动内置web服务器:
cd ~/public_html php -S localhost:8000
端口号8000是自定义的,换成其他未使用端口均可。
启动后,控制界面如下所示:
测试内置服务器
在public_html文件夹下建立test.php,
<?php phpinfo(); ?>
然后在浏览器中访问localhost:8000/test.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在各种web服务器的运行模式详解
相关文章推荐
- Yii2 删除
- Yii2 时间格式的用法
- Yii2 自带的日志组件扩展
- Yii2.0全站搜索功能上线
- Mac OS X 10.11 系统环境变量配置
- PHP FTP操作类( 上传、拷贝、移动、删除文件/创建目录 )
- PHP获取今天、明天、一个月后、一年后等等时间函数
- PHP获取今天、明天、一个月后、一年后等等时间函数
- Yii2-admin RBAC权限管理的实现
- thinkPHP 内置的一个大写字母方法
- 浅谈ThinkPhp里的utf8格式字符串截取
- 捣蛋phpwind过滤器执行流程
- Windows下尝试PHP7提示丢失VCRUNTIME140.DLL的问题解决
- pure-ftpd 530错误
- PHP 数据集循环
- 捣蛋phpwind之WindFrameWork
- laravel5验证码
- 他山之石-sphinx全文检索之PHP使用教程
- thinkphp中使用ajax实现无刷新分页
- php json 格式控制