php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法


Posted in PHP onMay 25, 2015

在php命令行下执行.php文件时,执行环境的工作目录(getcwd( ))是php命令程序(php.exe)所在目录,所以如果想在文件内使用相对路径时,要先切换当前的工作目录才行。

小测试程序:

<?php

 $oldpath = getcwd();    // 原始工作目录 php.exe所在目录

 $path = dirname(__FILE__);    

 chdir($path);           // 切换工作目录为当前文件所在目录

 $fpath = "forum/readme.txt";

 

 $fp = fopen($fpath, "a+b");    // 如果不切换工作目录这里会报找不到文件的错误

 fwrite($fp, "oldpath:".$oldpath."-newpath:".getcwd());

 fclose($fp);

?>

    需要用crotab定时执行的程序也会有这下问题。可以参考下面这篇文章:

使用php脚本写了一个脚本,需要在crontab中定期运行,但是出现如下错误

代码如下:

/var/www/html/bt/e/BtSys:.:/usr/share/pear:/usr/share/phpPHP Warning: require(../class/connect.php): failed to open stream: No such file or directory in /var/www/html/bt/e/BtSys/torrents-scrape.php on line 17 

PHP Fatal error: require(): Failed opening required '../class/connect.php' (include_path='/var/www/html/bt/e/BtSys:.:/usr/share/pear:/usr/share/php') in /var/www/html/bt/e/BtSys/torrents-scrape.php on line 17

尝试解决方法1 加入如下代码
// setting include path 

$cur_dir=getcwd(); 

$cur_dir=$basedir = dirname(__FILE__); 

$path = ini_get('include_path'); 

ini_set("include_path", "$cur_dir:$path"); 

$path = ini_get('include_path'); 

//echo $path; 

require(../class/a.php) 

require(../class/b.php) 

...............

运行失败

尝试解决方法2 加入如下代码

复制代码代码如下:

$cur_dir = dirname(__FILE__); 

chdir($cur_dir); 

require(../class/a.php) 

require(../class/b.php)

运行成功

总结: 在require 时,如果是相对目录,在crontab 中运行php脚本,要进入到脚本所在目录才可以

PHP 相关文章推荐
PHP经典的给图片加水印程序
Dec 06 PHP
火车头采集器3.0采集图文教程
Mar 17 PHP
php自动跳转中英文页面
Jul 29 PHP
劣质的PHP代码简化
Feb 08 PHP
PHP中SESSION使用中的一点经验总结
Mar 30 PHP
PHP多文件上传类实例
Mar 07 PHP
joomla实现注册用户添加新字段的方法
May 05 PHP
PHP的AES加密算法完整实例
Jul 20 PHP
CI框架使用composer安装的依赖包步骤与方法分析
Nov 21 PHP
PHP判断数组是否为空的常用方法(五种方法)
Feb 08 PHP
PHP的PDO预定义常量讲解
Jan 24 PHP
解决laravel session失效的问题
Oct 14 PHP
PHP SOCKET编程详解
May 22 #PHP
fckeditor上传文件按日期存放及重命名方法
May 22 #PHP
php读取csc文件并输出
May 21 #PHP
php返回当前日期或者指定日期是周几
May 21 #PHP
php实现随机显示图片方法汇总
May 21 #PHP
php动态函数调用方法
May 21 #PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
May 21 #PHP
You might like
PHP结合Mysql数据库实现留言板功能
2016/03/04 PHP
PHP微信公众号开发之微信红包实现方法分析
2017/07/14 PHP
PHP利用递归函数实现无限级分类的方法
2019/03/22 PHP
jquery 图片预加载 自动等比例缩放插件
2008/12/25 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2010/05/18 Javascript
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
2011/10/29 Javascript
疯狂Jquery第一天(Jquery学习笔记)
2012/05/11 Javascript
JavaScript 盒模型 尺寸深入理解
2012/12/31 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
jQuery插件实现表格隔行换色且感应鼠标高亮行变色
2013/09/22 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
2015/12/02 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
Angular中使用better-scroll插件的方法
2018/03/27 Javascript
微信小程序的部署方法步骤
2018/09/04 Javascript
react+ant design实现Table的增、删、改的示例代码
2018/12/27 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
Python多线程编程(五):死锁的形成
2015/04/05 Python
解决pycharm工程启动卡住没反应的问题
2019/01/19 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
浅谈pytorch、cuda、python的版本对齐问题
2020/01/15 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
Java byte数组操纵方式代码实例解析
2020/07/22 Python
CSS3 Flexbox中flex-shrink属性的用法示例介绍
2013/12/30 HTML / CSS
阿迪达斯俄罗斯官方商城:adidas俄罗斯
2017/03/08 全球购物
台湾网友喜爱的综合型网路购物商城:Yahoo! 奇摩购物中心
2018/03/10 全球购物
The North Face北面德国官网:美国著名户外品牌
2018/12/12 全球购物
物理专业大学生职业生涯规划书
2014/02/07 职场文书
妇女儿童发展规划实施方案
2014/03/16 职场文书
家长对孩子的评语
2014/04/18 职场文书
优秀员工推荐信
2014/05/10 职场文书
酒会邀请函
2015/01/31 职场文书
六年级作文之预言作文
2019/10/25 职场文书
Python循环之while无限迭代
2022/04/30 Python