php命令行基础用法
PHP是一门门槛很低的语言,自学成才的不算少数。可能很多人跟我一样用了好多年的PHP还不知道PHP命令行其实自带了很多好用的功能。下面盘点一下:
1.PHP开启简单的server web服务。
经常用PHP写api难免需要开web服务来调试接口,开网站服务php-fpm、nginx(或者Apache)、IIS几个老伙计经常一起搭档,但是有时候不想那么麻烦就开个简单的web服务测试一下其实直接php -S 127.0.0.1:8080命令足以。 php -S 后面接监听的地址:端口,还能-t指定web目录,-S要注意是大写。我也经常用来临时传文件用。
<code>
#代码示例,监听9527端口,局域网或者公网访问,web目录为当前目录下的my_web_dir
#php -S 0.0.0.0:9527 -t ./my_web_dir
</code>
2.PHP语法错误检查。
刚学PHP那几年都是靠var_dump()和die()下断点debug的,新手难免很多语法错误。事实上可以直接php -l 你的PHP文件直接通过命令行检查语法错误。虽然现在代码编辑器功能非常强大几乎用不到这个功能了,但保不准一些像我这样的野路子喜欢在线上服务器直接debug,或许就会用到这个命令。
<code>
#代码示例,php检查语法错误
#test.php文件内容如下:
<?php
echo mt_rand(0,999);
</code>
php -l test.php
PHP Parse error: syntax error, unexpected ',999' (T_STRING), expecting ')' in test.php on line 3
Errors parsing test.php
第3行分号打成了全角
3.PHP交互式命令行。
PHP有很多优秀的框架,备受推崇的laravel就开发很友好,默认还提供了好用的命令行工具。直接在项目根目录执行php artisan tinker就能使用框架里的函数,甚至一些功能比nodejs和Python自带的命令行都好用。但是总有一些老项目是没有带命令行调试工具的,以前不知道PHP其实内置了交互式调试命令:php -a 输入命令后就能直接调试PHP了,甚至像一些老框架比如tp3.2这类也可以使用这个交互命令在public目录include("index.php"),直接能调用和调试所有的方法和类。
<code>
#示例代码,利用交互式命令调试代码
test.php内容如下:
<?php
class Human{
public static function man(){
return "Oh man";
}
public function female(){
return "Oh woman";
}
//其他性别....
}
php -a
Interactive mode enabled
#php > include("test.php");
#php > $test = new Human();
#php > echo $test::man();
#Oh man
#php > echo $test->female();
#Oh woman
#php >
</code>
4.格式化PHP代码以html来输出。
我的自建博客经常会有一些代码demo,也不打算在博客系统里用什么复杂的框架来展示漂亮的代码,直到我发现其实直接使用php -s php文件 > 格式化完成的PHP文件.php 就能输出经过html格式化的源代码,还是挺管用的。注意这个命令的-s是小写,要和开启sever服务的参数-S做区分。
<code>
#示例代码,把PHP代码格式化为html输出,还是用上面的test.php做测试
php -s test.php > test.html
<span style="color: #000000">
<span style="color: #0000BB"><?php<br /><br /></span><span style="color: #007700">class </span><span style="color: #0000BB">Human</span><span style="color: #007700">{<br /> public static function </span><span style="color: #0000BB">man</span><span style="color: #007700">(){<br /> return </span><span style="color: #DD0000">"Oh man"</span><span style="color: #007700">;<br /> }<br /><br /> public function </span><span style="color: #0000BB">female</span><span style="color: #007700">(){<br /> return </span><span style="color: #DD0000">"Oh woman"</span><span style="color: #007700">;<br /> }<br /><br /> </span><span style="color: #FF8000">//其他性别....<br /></span><span style="color: #007700">}<br /></span>
</span>
</code>
5.去除PHP代码的注释和换行。
有时候需要去掉PHP代码多余的注释和换行,用于压缩代码节省空间就会用到php -w 要压缩的代码文件 > 压缩完成的代码文件。 这个方法一般我只用在线上生产环境要部署的代码。毕竟开发测试环境的的代码如果没了注释和换行我自己也会很头疼。
<code>
#示例代码,压缩PHP代码
php -w test.php
输出:
<?php
class Human{ public static function man(){ return "Oh man"; } public function female(){ return "Oh woman"; } }
</code>
PHP命令行还有很多其他的参数,这里就不赘述,感兴趣可以查查PHP官方文档,linux环境下也可以直接执行man php查看php-cli的参数选项。
更多>>