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 相关文章推荐
一个PHP操作Access类(PHP+ODBC+Access)
Jan 02 PHP
PHP 简单日历实现代码
Oct 28 PHP
PHP 遍历文件实现代码
May 04 PHP
深入PHP与浏览器缓存的分析
Jun 03 PHP
利用中国天气预报接口实现简单天气预报
Jan 20 PHP
PHP+JQuery+Ajax实现分页方法详解
Aug 06 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
PHP回调函数概念与用法实例分析
Nov 03 PHP
实例介绍PHP删除数组中的重复元素
Mar 03 PHP
PHP使用phpunit进行单元测试示例
Sep 23 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 PHP
如何用PHP实现分布算法之一致性哈希算法
May 26 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
BBS(php &amp; mysql)完整版(三)
2006/10/09 PHP
php 批量添加多行文本框textarea一行一个
2014/06/03 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
css3实现背景模糊的三种方式
2021/03/09 HTML / CSS
javascript 写类方式之六
2009/07/05 Javascript
JavaScript 继承详解(二)
2009/07/13 Javascript
基于jquery.Jcrop的头像编辑器
2010/03/01 Javascript
js 编程笔记 无名函数
2011/06/28 Javascript
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
jquery.validate使用详解
2016/06/02 Javascript
用JS实现图片轮播效果代码(一)
2016/06/26 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
jQuery表单验证简单示例
2016/10/17 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
Angular.JS中指令ng-if的注意事项小结
2017/06/21 Javascript
python遍历类中所有成员的方法
2015/03/18 Python
python3.x 将byte转成字符串的方法
2018/07/17 Python
Python查找文件中包含中文的行方法
2018/12/19 Python
Python+OpenCV图片局部区域像素值处理详解
2019/01/23 Python
pytorch numpy list类型之间的相互转换实例
2019/08/18 Python
python遍历文件目录、批量处理同类文件
2019/08/31 Python
python多线程实现TCP服务端
2019/09/03 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
pytorch之inception_v3的实现案例
2020/01/06 Python
python中with用法讲解
2020/02/07 Python
python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解
2020/02/11 Python
Ubuntu20下的Django安装的方法步骤
2021/01/24 Python
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
Fossil加拿大官网:化石手表、手袋、首饰及配饰
2019/04/23 全球购物
泰国第一在线超市:Tops
2021/02/13 全球购物
市场营销毕业求职信
2014/08/07 职场文书
2014年流动人口工作总结
2014/11/26 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
幼儿园老师个人总结
2015/02/28 职场文书
辩护词格式
2015/05/22 职场文书