PHPでは、 IS_LINK()関数を使用して、特定のパスがSymlinkであるかどうかを確認できます。シンボリックリンクは、別のファイルまたはディレクトリを指す特別なタイプのファイルです。 IS_LINK()関数は、ファイルがシンボリックリンクであるかどうかを判断するのに役立つだけでなく、パスが有効かどうかを確認することもできます。
IS_LINK()関数は、指定されたパスがシンボリックリンクであるかどうかを検出するために使用されます。パスがシンボリックリンクであり、リンクが存在する場合はtrueを返し、それ以外の場合はfalseを返します。
$path = '/path/to/symlink';
if (is_link($path)) {
echo "これは象徴的なリンクです。\n";
} else {
echo "これは象徴的なリンクではありません。\n";
}
is_link()関数の唯一の引数は$パスで、チェックするファイルパスを表します。このパスは、絶対的なパスまたは相対パスになる可能性があります。
絶対パス: /var/www/html/symlinkなど。
相対パス:現在の作業ディレクトリ内のファイルを指すSymlinkなど。
シンボリックリンクが有効かどうかを判断するには、ターゲットファイルが存在することを確認する必要があります。シンボリックリンクによって指されたターゲットファイルが存在しない場合、 is_link()はtrueを返しますが、これはリンクが有効であることを意味しません。
is_link()とfile_exists()関数を組み合わせて、シンボリックリンクが有効かどうかを確認できます。 file_exists()関数は、ファイルまたはディレクトリが存在するかどうかを確認するために使用されます。
$path = '/path/to/symlink';
if (is_link($path)) {
echo "これは象徴的なリンクです。\n";
if (file_exists(readlink($path))) {
echo "シンボリックリンクによって指されたファイルが存在します。\n";
} else {
echo "シンボリックリンクによって指摘されたファイルは存在しません。\n";
}
} else {
echo "これは象徴的なリンクではありません。\n";
}
上記のコードでは、最初にis_link()を使用して、パスがシンボリックリンクであるかどうかを確認します。シンボリックリンクの場合、 readLink()を使用してターゲットファイルパスをシンボリックリンクに取得し、 file_exists()を使用してターゲットファイルが存在するかどうかを確認します。
readLink()関数を使用して、シンボリックリンクがポイントするファイルパスを取得できます。これは、シンボリックリンクの効果をデバッグして検証するのに非常に役立ちます。
$path = '/path/to/symlink';
if (is_link($path)) {
$target = readlink($path);
echo "シンボリックリンクによって指摘されたファイルはです: $target\n";
} else {
echo "これは象徴的なリンクではありません。\n";
}
パスがローカルファイルパスではなくURLである場合、 Filter_Var()関数を介して有効なURLであるかどうかを確認できます。たとえば、URLリンクが指すファイルがある場合、次の方法を確認できます。