php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
在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/phpPHPWarning:require(../class/connect.php):failedtoopenstream:Nosuchfileordirectoryin/var/www/html/bt/e/BtSys/torrents-scrape.phponline17 PHPFatalerror:require():Failedopeningrequired'../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.phponline17