Codeigniter _index.php
_から次のコードがあります
私の理解は、
_/
_(この場合はCIcore_1_7_1)の文字列位置の_$system_folder
_がfalse
であり、realpath
関数が存在し、かつ(?)がfalse
ではない場合、_$system_folder
_が(?)_/$system_folder
_。 else _$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);
}
_
realpath()
関数を使用すると、シンボリックリンクとディレクトリトラバース(例:../../)が解決されたファイルシステムパスが得られます。 dirname()
関数は、ディレクトリ内のファイルではなく、ディレクトリのみを提供します。
__FILE__
は、現在の.phpファイル(__FILE__
は、インクルードの場合に含まれているものではなく、インしています。
正しく聞こえます。
これは、Windowsスタイル(\)のパスをUnixスタイル(/)に変換するためです。
___FILE__
_は、単に現在のファイルの名前です。 realpath(dirname(__FILE__))
は、ファイルが置かれているディレクトリの名前を取得します。つまり、アプリがインストールされているディレクトリです。_@
_は、エラーを抑制するPHPの非常に愚かな方法です。
__FILE__
ファイルのフルパスとファイル名。インクルード内で使用された場合、インクルードされたファイルの名前が返されます。 PHP 4.0.2、[〜#〜] file [〜#〜]には、シンボリックリンクが解決された絶対パスが常に含まれているのに対し、古いバージョンでは相対パスが含まれていたためいくつかの状況。
string dirname ( string $path )
ファイルへのパスを含む文字列を指定すると、この関数はディレクトリの名前を返します。
str_replace("\\", "/", $system_folder)
これは、異なるオペレーティングシステム間のパス区切り文字で構成される必要があります。 Windowsは\を使用し、* nixは/を使用し、/を使用します。