1. ホーム
  2. php

[解決済み] FILE__とはどういう意味ですか?

2022-03-04 04:30:06

質問

私はCodeigniterから次のコードを持っています。 index.php

私の理解では

もし / の文字列位置の $system_folder (この場合CIcore_1_7_1)は false , で、もし realpath 関数が存在し、かつ(?)が false , $system_folder が割り当てられている(?) /$system_folder . さもなくば $system_folder が割り当てられます。 $system_folder を置き換えて \\/ .

Q1. realpath機能とはどのようなものですか?

Q2. これはどういう意味ですか?

@realpath(dirname(__FILE__))

Q3. 私は正しいのでしょうか?何か誤解があるのでしょうか?

Q4. どのような場面で下記が必要ですか?

str_replace("\\", "/", $system_folder)


$system_folder = "CIcore_1_7_1";

/*
|---------------------------------------------------------------
| SET THE SERVER PATH
|---------------------------------------------------------------
|
| Let's attempt to determine the full-server path to the "system"
| folder in order to reduce the possibility of path problems.
| Note: We only attempt this if the user hasn't specified a 
| full server path.
|
*/

if (strpos($system_folder, '/') === FALSE)
{
    if (function_exists('realpath') AND @realpath(dirname(__FILE__)) !== FALSE)
    {
        $system_folder = realpath(dirname(__FILE__)).'/'.$system_folder;
    }
}
else
{
    // Swap directory separators to Unix style for consistency
    $system_folder = str_replace("\\", "/", $system_folder); 
}

解決方法は?

  1. その realpath() 関数は、シンボリックリンクやディレクトリの移動(例: ../../)を解決したファイルシステムのパスを提供します。この関数は dirname() 関数は、ディレクトリだけを取得し、その中のファイルは取得しません。

  2. __FILE__ は魔法の定数で、現在の .php ファイルへのファイルシステムのパスを指定します ( __FILE__ の中にあるもので、インクルードされている場合はその中にあるものではありません。

  3. だいたい合っているような気がします。

  4. これは、Windowsスタイル(♪)のパスをUnixスタイル(♪)に変換するためのものです。