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调用MySQL的存储过程的实现代码
Aug 12 PHP
APACHE的AcceptPathInfo指令使用介绍
Jan 18 PHP
最常用的8款PHP调试工具
Jul 06 PHP
php实现cookie加密的方法
Mar 10 PHP
PHP实现仿Google分页效果的分页函数
Jul 29 PHP
PHP中__autoload和Smarty冲突的简单解决方法
Apr 08 PHP
php+MySql实现登录系统与输出浏览者信息功能
Jul 01 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
Feb 24 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
Apr 18 PHP
php 中的closure用法详解
Jun 12 PHP
php mysql PDO 查询操作的实例详解
Sep 23 PHP
Windows服务器中PHP如何安装redis扩展
Sep 27 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
PHP调用Twitter的RSS的实现代码
2010/03/10 PHP
PHP分页效率终结版(推荐)
2013/07/01 PHP
解析php开发中的中文编码问题
2013/08/08 PHP
PHP生成自定义长度随机字符串的函数分享
2014/05/04 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
2015/09/30 PHP
PHP常用技巧汇总
2016/03/04 PHP
PHP通过引用传递参数用法分析
2016/12/01 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
Javascript中的数学函数
2007/04/04 Javascript
node.js Web应用框架Express入门指南
2014/05/28 Javascript
jQuery 隐藏和显示 input 默认值示例
2014/06/03 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
移动端横屏的JS代码(beta)
2016/05/16 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
2016/09/28 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
深入理解node.js http模块
2018/01/24 Javascript
JavaScript EventEmitter 背后的秘密 完整版
2018/03/29 Javascript
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
使用mixins实现elementUI表单全局验证的解决方法
2019/04/02 Javascript
Vue开发环境跨域访问问题
2020/01/22 Javascript
在vue中使用vant TreeSelect分类选择组件操作
2020/11/02 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
jQuery实现增删改查
2020/12/22 jQuery
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
TensorFlow 滑动平均的示例代码
2018/06/19 Python
深入了解Python iter() 方法的用法
2019/07/11 Python
django中的数据库迁移的实现
2020/03/16 Python
娱乐地球:Entertainment Earth
2020/01/08 全球购物
毕业典礼演讲稿
2014/05/13 职场文书
大学军训的体会
2014/11/08 职场文书
父亲节活动总结
2015/02/12 职场文书
大学感恩节活动总结
2015/05/05 职场文书
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers