file_get_contents()
これは、index.php
PHP コードです
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
<?php
$file = './test.php';
$content = file_get_contents($file);
echo $content;
test.php には、次の文があります: これはテストです
これら 2 つのファイルは、次のとおりです。同じレベルのディレクトリで、ブラウザで実行すると「これはテストです」という文が正常に入力されますが、コマンドラインから実行すると警告が表示され、「これはテストです」と表示されます。
エラーは次のとおりです:
C:Usershahaliu>php G:wwwindex.php
PHP 警告: file_get_contents(test.php): ストリームを開けませんでした: そのようなファイルはありません
または G:wwwindex.php の 3 行目
警告: file_get_contents(test.php): ストリームを開けませんでした: そのようなファイルまたはディレクトリは G:wwwindex.php の 3 行目
にありません
🎜>次に、$file を絶対パスに変更しました。
$file = 'G:/www/test.php';
コマンドラインで「これはテストです」と出力されるのですが、使用するとエラーが発生するのはなぜですか。コマンドラインの相対パスは何ですか? 何が正しく設定されていませんか?
-----解決策-------- -----------
php.ini で指定された include_path を考慮しない場合:
ブラウザーを介して参照する場合、つまり Web サーバーとして参照する場合、ファイルが実行されるディレクトリは Web サーバーの構成に基づきます
コマンドラインでは、システム環境パスに基づいています
次の 2 つの出力で違いを確認できます
PHP コード
エコー getcwd();
echo ini_get('include_path');