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版
Oct 09 PHP
PHP脚本的10个技巧(2)
Oct 09 PHP
一个分页的论坛
Oct 09 PHP
第十四节--命名空间
Nov 16 PHP
令PHP初学者头疼十四条问题大总结
Nov 12 PHP
PHP 身份验证方面的函数
Oct 11 PHP
如何使用PHP计算上一个月的今天
May 23 PHP
Symfony数据校验方法实例分析
Jan 26 PHP
学习php设计模式 php实现模板方法模式
Dec 08 PHP
PHP类的声明与实例化及构造方法与析构方法详解
Jan 26 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
Nov 07 PHP
PHP读取目录树的实现方法分析
Mar 22 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
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
php加密解密实用类分享
2014/01/07 PHP
php可生成缩略图的文件上传类实例
2014/12/17 PHP
php微信公众平台开发类实例
2015/04/01 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
实现php删除链表中重复的结点
2018/09/27 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
javascript 多种搜索引擎集成的页面实现代码
2010/01/02 Javascript
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
JS 控制小数位数的实现代码
2011/08/02 Javascript
js jquery数组介绍
2012/07/15 Javascript
js实现下拉框选择要显示图片的方法
2015/02/16 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
JavaScript模拟实现自由落体效果
2018/08/28 Javascript
微信小程序使用wxParse解析html的方法示例
2019/01/17 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
2019/08/29 Javascript
微信小程序中weui用法解析
2019/10/21 Javascript
vue-autoui自匹配webapi的UI控件的实现
2020/03/20 Javascript
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
py2exe 编译ico图标的代码
2013/03/08 Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
2016/12/15 Python
亚马逊中国官方网站:amazon.cn
2017/05/25 全球购物
PHP如何对用户密码进行加密
2014/07/31 面试题
TCP/IP模型的分界线
2012/12/01 面试题
工程造价自荐信
2013/10/09 职场文书
公司新年寄语
2014/04/04 职场文书
应聘会计求职信
2014/06/11 职场文书
2014年国庆节演讲稿
2014/09/02 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
党员作风建设自查报告
2014/10/23 职场文书
2014年教研员工作总结
2014/12/23 职场文书
初一英语教学反思
2016/02/15 职场文书