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 相关文章推荐
相对路径转化成绝对路径
Apr 10 PHP
PHP 5.0对象模型深度探索之类的静态成员
Mar 27 PHP
使用php清除bom示例
Mar 03 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
php对文件进行hash运算的方法
Apr 03 PHP
经典PHP加密解密函数Authcode()修复版代码
Apr 05 PHP
两款万能的php分页类
Nov 12 PHP
Yii框架上传图片用法总结
Mar 28 PHP
PHP 二维array转换json的实例讲解
Aug 21 PHP
python进程与线程小结实例分析
Nov 11 PHP
php获取是星期几的的一些常用姿势
Dec 15 PHP
Thinkphp5框架异常处理操作实例分析
Jun 03 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
PHP设计模式之装饰者模式
2012/02/29 PHP
php将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
php实现格式化多行文本为Js可用格式
2015/04/15 PHP
php arsort 数组降序排序详细介绍
2016/11/17 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
javascript中的事件代理初探
2014/03/08 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
轻松实现jquery手风琴效果
2016/01/14 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
2016/03/18 Javascript
JS中对Cookie的操作详解
2016/08/05 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
2016/12/08 Javascript
jQuery中的on与bind绑定事件区别实例详解
2017/02/28 Javascript
nodejs socket服务端和客户端简单通信功能
2017/09/14 NodeJs
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
2018/02/23 Javascript
JS中appendChild追加子节点无效的解决方法
2018/10/14 Javascript
使用异步组件优化Vue应用程序的性能
2019/04/28 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
python实现mysql的单引号字符串过滤方法
2015/11/14 Python
Python时间戳使用和相互转换详解
2017/12/11 Python
Django权限机制实现代码详解
2018/02/05 Python
用python实现将数组元素按从小到大的顺序排列方法
2018/07/02 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
2018/10/29 Python
python函数的万能参数传参详解
2019/07/26 Python
python itsdangerous模块的具体使用方法
2020/02/17 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
外出听课学习心得体会
2016/01/15 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
2021/10/16 Python