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 !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
Jan 07 PHP
php中使用cookie来保存用户登录信息的实现代码
Mar 08 PHP
PHP中echo和print的区别
Aug 28 PHP
PHP自动重命名文件实现方法
Nov 04 PHP
PHP多维数组遍历方法(2种实现方法)
Dec 10 PHP
php设计模式之委托模式
Feb 13 PHP
使用PHP处理数据库数据如何将数据返回客户端并显示当前状态
Feb 16 PHP
PHP递归实现层级树状展开
Apr 01 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
Sep 21 PHP
php简单生成一组与多组随机字符串的方法
May 09 PHP
laravel学习笔记之模型事件的几种用法示例
Aug 15 PHP
Laravel框架Blade模板简介及模板继承用法分析
Dec 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
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
php缓冲输出实例分析
2015/01/05 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
jQuery的实现原理的模拟代码 -5 Ajax
2010/08/07 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
jQuery的load()方法及其回调函数用法实例
2015/03/25 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
2018/01/25 Javascript
React路由管理之React Router总结
2018/05/10 Javascript
在vue里使用codemirror遇到的问题
2018/11/01 Javascript
JS滚轮控制图片缩放大小和拖动的实例代码
2018/11/20 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
卸载vue2.0并升级vue_cli3.0的实例讲解
2020/02/16 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
使用Kivy将python程序打包为apk文件
2017/07/29 Python
对Python中9种生成新对象的方法总结
2018/05/23 Python
详解js文件通过python访问数据库方法
2019/03/03 Python
python之yield和Generator深入解析
2019/09/18 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
关于python 跨域处理方式详解
2020/03/28 Python
老板电器官方购物商城:老板油烟机、燃气灶、消毒柜、电烤箱
2018/05/30 全球购物
写出SQL四条最基本的数据操作语句(DML)
2012/12/12 面试题
出纳岗位职责
2013/11/09 职场文书
路政管理专业推荐信
2013/11/11 职场文书
《童年的发现》教学反思
2014/02/14 职场文书
团结就是力量演讲稿
2014/05/21 职场文书
护士求职信
2014/07/05 职场文书
高一军训决心书
2015/02/05 职场文书
芙蓉镇观后感
2015/06/10 职场文书
小学体育队列队形教学反思
2016/02/16 职场文书
Feign调用全局异常处理解决方案
2021/06/24 Java/Android
SQL优化老出错,那是你没弄明白MySQL解释计划用法
2021/11/27 MySQL