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中的数组操作函数整理
Aug 18 PHP
php中几种常见安全设置详解
Apr 06 PHP
iis下php mail函数的sendmail配置方法(官方推荐)
Apr 25 PHP
PHP中创建图像并绘制文字的例子
Nov 19 PHP
php动态绑定变量的用法
Jun 16 PHP
基于JQuery+PHP编写砸金蛋中奖程序
Sep 08 PHP
PHP加密解密函数详解
Oct 28 PHP
PHP实现时间比较和时间差计算的方法示例
Jul 24 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
May 06 PHP
PHP创建XML接口示例
Jul 04 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
Sep 05 PHP
解决tp5在nginx下修改配置访问的问题
Oct 16 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防止sql注入示例分析和几种常见攻击正则表达式
2014/01/12 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
2014/07/02 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
AJAX分页的代码(后台asp.net)
2011/02/14 Javascript
基于jquery的bankInput银行卡账号格式化
2012/08/22 Javascript
jtable列中自定义button示例代码
2013/11/21 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
jquery实现图片上传之前预览的方法
2015/07/11 Javascript
用javascript实现自动输出网页文本
2015/07/30 Javascript
javascript随机抽取0-100之间不重复的10个数
2016/02/25 Javascript
省市区三级联动jquery实现代码
2020/04/15 Javascript
JS中如何实现复选框全选功能
2016/12/19 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
2017/06/20 Javascript
vue系列之动态路由详解【原创】
2017/09/10 Javascript
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
2018/09/07 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
JavaScript实现简单日历效果
2020/09/11 Javascript
python 把列表转化为字符串的方法
2018/10/23 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
解决Keras 自定义层时遇到版本的问题
2020/06/16 Python
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
爱淘宝:淘宝网购物分享平台
2017/04/28 全球购物
Hammitt官网:设计师手袋
2020/05/23 全球购物
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
学生拾金不昧表扬信
2014/01/21 职场文书
求职毕业生自荐书
2014/02/08 职场文书
计算机求职自荐信范文
2014/04/19 职场文书
2014年个人售房协议书
2014/10/30 职场文书
2015年工程师工作总结
2015/04/30 职场文书
车间安全生产管理制度
2015/08/06 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
golang 比较浮点数的大小方式
2021/05/02 Golang