ホームページ >バックエンド開発 >PHPチュートリアル >file_get_contents() ソリューション

file_get_contents() ソリューション

WBOY
WBOYオリジナル
2016-06-13 13:49:081699ブラウズ

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');
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。