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 相关文章推荐
NOT NULL 和NULL
Jan 15 PHP
php数据类型判断函数有哪些
Sep 23 PHP
PHP file_get_contents设置超时处理方法
Sep 30 PHP
PHP文件大小格式化函数合集
Mar 10 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
Apr 08 PHP
php+xml实现在线英文词典查询的方法
Jan 23 PHP
php支付宝手机网页支付类实例
Mar 04 PHP
基于php的微信公众平台开发入门实例
Apr 15 PHP
PHP使用PDO操作数据库的乱码问题解决方法
Apr 08 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
Oct 08 PHP
在PHP中实现使用Guzzle执行POST和GET请求
Oct 15 PHP
如何判断微信付款码和支付宝付款码
Apr 01 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 默默经典版本
2009/08/04 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
PHP代码优化技巧小结
2015/09/29 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
JavaScript-世界上误解最深的语言分析
2007/08/12 Javascript
Javascript学习笔记4 Eval函数
2010/01/11 Javascript
JavaScript Event学习第十章 一些可替换的事件对
2010/02/10 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
2013/05/07 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
Eclipse配置Javascript开发环境图文教程
2015/01/29 Javascript
如何使用jquery修改css中带有!important的样式属性
2016/04/28 Javascript
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
2019/04/10 Javascript
JavaScript页面倒计时功能完整示例
2019/05/15 Javascript
JS实现TITLE悬停长久显示效果完整示例
2020/02/11 Javascript
Nodejs文件上传、监听上传进度的代码
2020/03/27 NodeJs
Python GAE、Django导出Excel的方法
2008/11/24 Python
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
Python 数据结构之堆栈实例代码
2017/01/22 Python
python字符串判断密码强弱
2020/03/18 Python
CAT鞋美国官网:CAT Footwear
2017/11/27 全球购物
单身旅行者的单身假期:Just You
2018/04/08 全球购物
英文导游欢迎词
2014/01/11 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
精彩的演讲稿开头
2014/05/08 职场文书
国际贸易系求职信
2014/08/09 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
redis客户端实现高可用读写分离的方式详解
2021/07/04 Redis
Java 数组的使用
2022/05/11 Java/Android