When executing a. php file under the PHP command line, the working directory of the Execution Environment (GETCWD ()) is the directory of the PHP Command Program (php.exe), so if you want to use a relative path within the file, switch the current working directory first.
Small test Program:
Copy Code code as follows:
<?php
$oldpath = GETCWD (); Original working directory Php.exe directory
$path = DirName (__file__);
ChDir ($path); Toggles the working directory to the directory where the current file resides
$fpath = "Forum/readme.txt";
$fp = fopen ($fpath, "a+b"); If you do not switch the working directory, you will report an error that cannot find the file
Fwrite ($FP, "OldPath:". $oldpath. " -newpath: ". GETCWD ());
Fclose ($FP);
?>
Programs that need to be executed regularly with Crotab will also have this problem. Refer to the following article:
Write a script using PHP script that needs to be run periodically in crontab, but the following error occurs
The code is as follows:
Copy Code code as follows:
/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 L INE 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
Try resolving Method 1 by adding the following code
Copy Code code as follows:
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)
...............
Run failed
Try resolving Method 2 by adding the following code
Copy code code as follows:
Copy Code code as follows:
$cur _dir = dirname (__file__);
ChDir ($cur _dir);
Require (.. /class/a.php)
Require (.. /class/b.php)
Run successfully
Summary: In require, if the relative directory, in the crontab run PHP script, to enter the script directory can