博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php命令行(cli)下相对路径的问题
阅读量:7209 次
发布时间:2019-06-29

本文共 1118 字,大约阅读时间需要 3 分钟。

hot3.png

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

小测试程序:

    需要用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脚本,要进入到脚本所在目录才可以

转载于:https://my.oschina.net/u/912810/blog/309688

你可能感兴趣的文章
mysql删除sql表添加别名及删除sql的注意事项
查看>>
tmux 基本用法
查看>>
iOS:使用NSRegularExpression正则去掉一串字符串中所有的特殊字符和标点
查看>>
腾讯工程师带你深入解析 MySQL binlog
查看>>
C指针操作ip地址以4个字节的int类型作为传输对象
查看>>
怎样在注冊表禁用或打开windows系统右键菜单
查看>>
项目管理学习笔记之四.风险管理
查看>>
Cisco VPP(1) 简单介绍
查看>>
RxJS -- Subscription
查看>>
关于TF(词频) 和TF-IDF(词频-逆向文件频率 )的理解
查看>>
析构函数
查看>>
手写体识别中用到的Tensorflow函数复习
查看>>
php中str_repeat函数
查看>>
MSSQL sql server 2005/2008 row_number()函数应用之–删除表中重复记录,只保留一条不重复数据...
查看>>
深入浅出理解linux inode结构【转】
查看>>
MySQL 误操作后数据恢复(update,delete忘加where条件)【转】
查看>>
jquery为动态添加元素绑定点击事件
查看>>
Linux常用基本命令:三剑客命令之-awk动作用法(1)
查看>>
[设备]Linux设备是否可以被多个进程或者线程同时Open?
查看>>
Mac下的SecureCRT使用技巧
查看>>