php命令行(cli)模式下报require 加载路径错误的解决方法


Posted in PHP onNovember 23, 2015

今天,同事突然告诉我,我写的一个做计划任务的php脚本执行总是不成功。

脚本本身很简单,里面只有包含了几个库文件并执行了一个函数,函数应该没有错误,这个函数在别处也调用过,没有问题。我在本地用浏览器访问页面,执行成功,看来没有问题,我有点怀疑是同事的计划任务的问题。我又打开命令行,用php直接执行脚本,这回报错了,是require 包含文件错误,看来是路径不对。

不明白是什么原因引起的,只是从报错来看是路径不对,我猜测是跟相对路径有关,于是把相对路径的全部改成绝对路径,再执行,问题解决。

在百度上搜索之后,知道是用php执行脚本时,执行脚本的位置是当前执行php命令的路径,所以相对路径就不对了。解决问题的办法有两个:

一、改用绝对路径,这个比较麻烦,所有包含的文件包括直接包含的文件里包含的文件路径,有一个不对就有可能出错,所以只有当执行文件比较简单的时候可用。

二、使用chdir函数,改变当前执行目录,把目录改为文件所在目录,chdir(dirname(__FILE__));

最后,简单介绍下PHP的cli命令行模式吧

首先,进入PHP的CLI(Command line interface) mode

cyguin-> $ ./php --ini(显示配置文件信息)

将显示:

configuration file(php.ini) path: c:/Windows
Loaded configuration file: c:/wamp/bin/php/php5.3.0/php.ini
scan for additional .ini files in: (none)
additional .ini files parsed: (none)

$./php --help (会显示PHP具体信息)
$./php --rf <name> (显示<name>函数的信息)
$./php --fc <name> (显示<name>类的信息)
$./php --re <name> (显示<name>扩展的信息)
$./php --ri <name> (显示<name>扩展的配置)

$./php -l <file> : 检查语法
如:$./php -l c:/wamp/www/1.php 
运行结果: No Syntax errors detected in xxx

$./php -v :显示版本信息和运行模式cgi/cli
运行结果:
PHP 5.3.0 (cli) (built: Jun 29 2009 21:25:23)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies

$./php -f <file>:解析并执行文件
如:$./php -f c:/wamp/www/1.php

$./php -h :显示帮助文件

$./php -r <code> : 运行PHP代码,不需要使用<?php ?>标签
如:$./php -r 'print("hello!");' 或 $./php -r 'echo "hello!";'
运行结果: hello!

$./php -a :进入交互模式
在linux下会出现:
php>
在windows下:
需要输入:

<?php
echo "hello world!";
?>

然后ctl+c,以获得输出。
在PHP5.3.0中,不能直接这样用,因为不能直接得到结果。

<?php
echo "hello world!";
?>

先输入ctl+z,然后再输入ctl+c,就会得到结果。

$./php -c : 指定查找php.ini的位置,或者指定一个特定的ini文件。

$./php -n : 不使用php.ini

$./php -d foo [=bar] : 定义INI文件中foo entry的值是bar

$./php -m : 显示所有的模块,php modules和zend modules

$./php -e : Generate extended information for debugger/profiler

$./php -B <begin_code> : 处理标准输入签执行的代码。PHP5新加。
如:
$./php -B 'echo "hello world";'
输出结果:hello world

$./php -R <code> : 为每一行执行的php代码。PHP5新加。

$./php -F <file> :

$./php -H <end_code> : 处理完输入后执行的代码

$./php -s : 显示HTML语法高亮的代码

$./php -w : 得到去掉空格和注释后的代码
如:
$./php -w c:/www/1.php

$./php -z <file> : 加载Zend扩展文件

$pwd :显示当前路径

--enable-cli, --enable-cgi

PHP 相关文章推荐
第十一节--重载
Nov 16 PHP
用PHP连接MySQL代码的参数说明
Jun 07 PHP
session在PHP大型web应用中的使用
Jun 25 PHP
解决file_get_contents无法请求https连接的方法
Dec 17 PHP
PHP生成RSS文件类实例
Dec 05 PHP
PHP进程同步代码实例
Feb 12 PHP
Thinkphp框架开发移动端接口(2)
Aug 18 PHP
php实现博客,论坛图片防盗链的方法
Oct 15 PHP
微信 getAccessToken方法详解及实例
Nov 23 PHP
yii2多图上传组件的使用教程
May 10 PHP
laravel实现简单用户权限的示例代码
May 28 PHP
使用Git实现Laravel项目的自动化部署
Nov 24 PHP
PHP语法小结之基础和变量
Nov 22 #PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
Nov 19 #PHP
PHP中使用array函数新建一个数组
Nov 19 #PHP
PHP新建类问题分析及解决思路
Nov 19 #PHP
php有效防止同一用户多次登录
Nov 19 #PHP
带你了解PHP7 性能翻倍的关键
Nov 19 #PHP
php curl模拟post请求和提交多维数组的示例代码
Nov 19 #PHP
You might like
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
Windows下安装Memcached的步骤说明
2010/04/25 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
smarty内置函数capture用法分析
2015/01/22 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
PHP后期静态绑定之self::限制实例分析
2018/12/21 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
javascript 类定义的4种方法
2009/09/12 Javascript
菜鸟学习JavaScript小实验之函数引用
2010/11/17 Javascript
浅谈Javascript事件处理程序的几种方式
2012/06/27 Javascript
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
JavaScript中使用document.write向页面输出内容实例
2014/10/16 Javascript
Jquery焦点图实例代码
2014/11/25 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
2015/03/18 Javascript
jquery ajax局部加载方法详解(实现代码)
2016/05/12 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
node结合swig渲染摸板的方法
2018/04/11 Javascript
angular使用md5,CryptoJS des加密的方法
2019/06/03 Javascript
JavaScript使用表单元素验证表单的示例代码
2019/08/20 Javascript
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
详解React 元素渲染
2020/07/07 Javascript
Python2.x中文乱码问题解决方法
2015/06/02 Python
Python基于jieba库进行简单分词及词云功能实现方法
2018/06/16 Python
对pandas的层次索引与取值的新方法详解
2018/11/06 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
华为C++笔试题
2014/08/05 面试题
精彩的英文自荐信
2014/01/30 职场文书
社会稳定风险评估方案
2014/06/02 职场文书
2015年出纳个人工作总结
2015/04/02 职场文书
比赛主持人开场白
2015/05/29 职场文书
关于远足的感想
2015/08/10 职场文书
机关干部纪律作风整顿心得体会
2016/01/23 职场文书
GoLang中生成UUID唯一标识的实现
2021/05/08 Golang