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的历史和优缺点
Oct 09 PHP
MYSQL数据库初学者使用指南
Nov 16 PHP
最新的php 文件上传模型,支持多文件上传
Aug 13 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
Nov 04 PHP
php实现webservice实例
Nov 06 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
使用PHPCMS搭建wap手机网站
Sep 20 PHP
基于PHP实现简单的随机抽奖小程序
Jan 05 PHP
Joomla开启SEF的方法
May 04 PHP
PHP实现的贪婪算法实例
Oct 17 PHP
利用PHP获取汉字首字母并且分组排序详解
Oct 22 PHP
php插入mysql数据返回id的方法
May 31 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程序
2006/10/09 PHP
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
php判断字符以及字符串的包含方法属性
2008/08/30 PHP
php学习笔记之 函数声明(二)
2011/06/09 PHP
实例分析PHP中PHPMailer发邮件
2017/12/13 PHP
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
跟着Jquery API学Jquery之一 选择器
2010/04/07 Javascript
js禁止小键盘输入数字功能代码
2011/08/01 Javascript
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
Node.js调试技术总结分享
2017/03/12 Javascript
ES6正则表达式的一些新功能总结
2017/05/09 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
JS实现将链接生成二维码并转为图片的方法
2018/03/17 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
2020/01/12 Javascript
浅谈python内置变量-reversed(seq)
2017/06/21 Python
解决Python3.5+OpenCV3.2读取图像的问题
2018/12/05 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
初学者学习Python好还是Java好
2020/05/26 Python
python线性插值解析
2020/07/05 Python
Armor Lux法国官方网站:水手服装、成衣和内衣
2020/05/26 全球购物
某公司C#程序员面试题笔试题
2014/05/26 面试题
四种会话跟踪技术
2015/05/20 面试题
英文自荐信
2013/12/15 职场文书
语文教学感言
2014/02/06 职场文书
机关单位动员会主持词
2014/03/20 职场文书
幼儿园中班开学寄语
2014/04/03 职场文书
数学兴趣小组活动总结
2014/07/08 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
2016年党风廉政建设承诺书
2016/03/25 职场文书
详细介绍python类及类的用法
2021/05/31 Python
基于Python实现股票收益率分析
2022/04/02 Python