2016-04-04 8 views
0

は、私は次の関数にインサイドPHPで `readfile`が失敗するのに対し、なぜ` include_once`がhtmlにうまくサービスしますか?

public function my_index() 
{ 

    try { 
     define("PATH_ROOT", dirname(__FILE__)); 
     var_dump(PATH_ROOT); 
     include_once PATH_ROOT . "/test.php"; 
     //readfile('./test.php'); 
    } catch (Exception $e) { 
     var_dump($e->getMessage()); 
    } 

    die; 

} 

を持っている私の私は

<div>This is test</div> 

私はtest.phpは、ファイルと同じディレクトリにあることを確認していtest.phpそのホストmy_index

しかし、私は

を試みるたび
readfile('./test.php); 

それは常に

readfile(./test.php): failed to open stream: No such file or directory 

を返すと私はreadfileアウトコメントするとき、実際にtest.php

のコンテンツを提供することが可能であるinclude_onceがHTMLにサービスを提供している理由を誰か説明できますか?これはPHPでHTMLを提供する慣用的な方法ですか?

+1

と現在の作業ディレクトリを確認することができます。 'include_once'を使うときは、' PATH_ROOT'定数の前にあなたは有効なパスを与えます。 –

答えて

0

あなたはinclude_onceの絶対パスを指定しました。

include_once PATH_ROOT . "/test.php"; 

別のものを試してください。

readfile(PATH_ROOT . "/test.php"); 

注: ファイルがカレントディレクトリに存在しないので、あなたがgetcwd()

関連する問題