众所周知, PHP 代码需要 web 服务器来执行, 要测试 PHP 代码就得搭建一个 web 服务器, 这就给我们平时学习带来了较多不便不过好在 PHP v5.4 版本以后, 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 函数正如函数的名称一样, 这个函数经常在调试下使用, 除了能打印变量的值, 还能打印变量的类型
来源: https://www.php1.cn/detail/php-719b1868b9.html