ホームページ  >  記事  >  バックエンド開発  >  php コマンドラインで PHP スクリプト ファイルを実行するための相対パスの問題の解決策 (cli)_PHP チュートリアル

php コマンドラインで PHP スクリプト ファイルを実行するための相対パスの問題の解決策 (cli)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:53:02850ブラウズ

PHPスクリプトファイルをphpコマンドライン(cli)で実行する際の相対パス問題の解決策

phpコマンドラインで.phpファイルを実行する場合、実行環境(getcwd())の作業ディレクトリはphp コマンド プログラム (php .exe) を使用するため、ファイル内で相対パスを使用する場合は、まず現在の作業ディレクトリに切り替える必要があります。

小さなテストプログラム:

コードは次のとおりです:

$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を使用して定期的に実行する必要があるプログラムにもこの問題が発生します。次の記事を参照してください:

crontabで定期的に実行する必要があるphpスクリプトを使用してスクリプトを作成しましたが、以下のエラーが発生しました

コードは次のとおりです:

コードは以下の通りです:

/var/www/html/bt/e/BtSys:.:/usr/share/pear:/usr/share/phpPHP 警告: require(../class/connect.php): ストリームを開けませんでした: そのようなものはありません/var/www/html/bt/e/BtSys/torrents-scrape.php の 17 行目のファイルまたはディレクトリ

PHP 致命的エラー: require(): 必要な '../class/connect.php' を開くことができませんでした (include_path='/var/www/html/bt/e/BtSys:.:/usr/share/pear:/usr /share/php') /var/www/html/bt/e/BtSys/torrents-scrape.php の 17 行目

解決策1を試して、次のコードを追加してください

コードは以下の通りです:

// インクルードパスの設定

$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 = ディレクトリ名(__FILE__);

chdir($cur_dir);

require(../class/a.php)

require(../class/b.php)

正常に実行されました

要約: 相対ディレクトリである場合、crontab で php スクリプトを実行するときに、スクリプトが配置されているディレクトリを入力する必要があります

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1005314.html技術記事 php コマンド ライン (cli) で PHP スクリプト ファイルを実行するための相対パスの問題の解決策。php コマンド ラインで .php ファイルを実行する場合、実行環境 (getcwd()) は php コマンド プログラム (う…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。