php命令行模式代码实例详解


Posted in PHP onFebruary 26, 2021

php全集行模式,即php-cli,官方文档中称为: CLI SAPI(Server Application Programming Interface,服务端应用编程端口).听着挺复杂。其实是因为php原本为服务器端的脚本语言,所以引申出这个叫法。

与服务端模式的不同

服务端模式主要有两种工作方式: 作为web server的模式方式或作为一个cgi可执行程序. 前者,比如作为apach中的一个模块(如:php5apache2.dll); 后者作为可执行程序,如php-cig. 现在的替代者为php-fpm(FastCGI Process Manager).

看下php-fpm的配置。 在服务器上,放一脚本文件,内容:

<?php

phpinfo();

?>

输出:

Server API FPM/FastCGI

Virtual Directory Support  disabled

Configuration File (php.ini) Path  /etc/php7

Loaded Configuration File  /etc/php7/php.ini

Scan this dir for additional .ini files /etc/php7/conf.d

说明配置文件为 /etc/php7/php.ini的/etc/php7/conf.d

再看下cli模式的配置文件. 运行

php -r "phpinfo();"

-rrun运行全集意思. 输出为:

Server API => Command Line Interface

Virtual Directory Support => disabled

Configuration File (php.ini) Path => /etc/php/7.0/cli

Loaded Configuration File => /etc/php/7.0/cli/php.ini

Scan this dir for additional .ini files => /etc/php/7.0/cli/conf.d

Additional .ini files parsed => /etc/php/7.0/cli/conf.d/10-opcache.ini,

配置文件路径为: /etc/php/7.0/cli/php.iniphp-fpm是不同的。

常听到有人说,php只能作为服务器暂时间脚本,不能作为长时间工作,还有安全配置会影响命令行等,显然是错误的。

其它差异

cli模式,定义了STDIN, STDOUT, STDERR三个常量; 如: $stderr = fopen(‘php://stderr', ‘w');

CLI SAPI 不会将当前目录改为已运行的脚本所在的目录.

php作为shell脚本

有两种方法将php脚本作为shell脚本, 如脚本:

hello.php

<?php

echo "hello world!";

var_dump($argv);

?>

方法1 php 脚本 参数

~php hello.php -s 'me'

hello world

array(3) {

 [0]=>

 string(9) "hello.php"

 [1]=>

 string(2) "-s"

 [2]=>

 string(2) "me"

}

方法2 在php文件头加

#!/usr/bin/php

然后 chmod u+x hello.php

执行 ./hello.php

hello world

array(1) {

 [0]=>

 string(11) "./hello.php"

}

到此这篇关于关于php命令行模式代码实例详解的文章就介绍到这了,更多相关关于php命令行模式内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
php二分法在IP地址查询中的应用
Aug 12 PHP
php导入csv文件碰到乱码问题的解决方法
Feb 10 PHP
php程序总是提示验证码输入有误解决方案
Jan 07 PHP
PHP实现HTML页面静态化的方法
Nov 04 PHP
PHP获取用户客户端真实IP的解决方案
Oct 10 PHP
php base64 编码与解码实例代码
Mar 21 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
Aug 03 PHP
php实现微信模板消息推送
Mar 30 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 PHP
浅谈laravel aliases别名的原理
Oct 24 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 PHP
Laravel6.18.19如何优雅的切换发件账户
Jun 14 PHP
PHP时间类完整代码实例
Feb 26 #PHP
PHP队列场景以及实现代码实例详解
Feb 26 #PHP
PHP实现长轮询消息实时推送功能代码实例讲解
Feb 26 #PHP
php的对象传值与引用传值代码实例讲解
Feb 26 #PHP
php并发加锁问题分析与设计代码实例讲解
Feb 26 #PHP
PHP内存溢出优化代码详解
Feb 26 #PHP
php自动加载代码实例详解
Feb 26 #PHP
You might like
DOTA2游戏同人动画《龙之血》导演接受采访
2021/03/05 欧美动漫
php 删除cookie和浏览器重定向
2009/03/16 PHP
如何用php生成扭曲及旋转的验证码图片
2013/06/07 PHP
php计算两个文件相对路径的方法
2015/03/14 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
js apply/call/caller/callee/bind使用方法与区别分析
2009/10/28 Javascript
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
2010/05/21 Javascript
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
javascript操作excel生成报表示例
2014/05/08 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
JS版微信6.0分享接口用法分析
2016/10/13 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
2016/10/27 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
xmlplus组件设计系列之树(Tree)(9)
2017/05/02 Javascript
vue-cli 2.*中导入公共less文件的方法步骤
2018/11/22 Javascript
Vue Element校验validate的实例
2020/09/21 Javascript
JavaScript大数相加相乘的实现方法实例
2020/10/18 Javascript
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
python3.4实现邮件发送功能
2018/05/28 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
对Python w和w+权限的区别详解
2019/01/23 Python
python读取有密码的zip压缩文件实例
2019/02/08 Python
Python实战购物车项目的实现参考
2019/02/20 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
2019/08/12 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2020/03/25 Python
python实现文字版扫雷
2020/04/24 Python
Python 如何创建一个线程池
2020/07/28 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
python raise的基本使用
2020/09/10 Python
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
非常详细的C#面试题集
2016/07/13 面试题
高级电工工作职责
2013/11/21 职场文书
公司晚会主持词
2014/03/22 职场文书
超越自我演讲稿
2014/05/21 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书
委托书范本格式
2019/04/18 职场文书