まず、 FTP_NLISTの仕組みを理解することが重要です。この関数は、FTPプロトコルを介して指定されたディレクトリリストにサーバーを要求し、結果を配列として返します。非表示ファイルに関しては、 ftp_nlistはドット( 。 )から始まるファイルを自動的に除外しません。つまり、これらのファイルがFTPサーバーの構成または特定のディレクトリで使用できない場合を除き、表示されたファイルリストに非表示ファイルが表示されます。
これは、サーバー上の返されたファイルリストを手動で確認することで検証できます。多くのUNIXベースのシステムでは、非表示ファイルは通常、ドット( 。 )から始まり、 .gitignoreや.bashrcなどのファイルはこのカテゴリに分類されます。
$ftp_connection = ftp_connect("ftp.m66.net");
ftp_login($ftp_connection, "username", "password");
$file_list = ftp_nlist($ftp_connection, "/path/to/directory");
print_r($file_list);
上記のコードで返された$ file_list配列で、ディレクトリにドットから始まるファイルがある場合、それらがリストされます。
FTP_NLISTによって返されるファイルリストには非表示ファイルが含まれている可能性があるため、ファイルが何らかの方法で非表示ファイルであるかどうかを判断する必要があります。最も直接的な方法は、ファイル名がドット( 。 )で始まるかどうかを確認することです。
foreach ($file_list as $file) {
if (strpos($file, '.') === 0) {
echo $file . " それは隠されたファイルです\n";
} else {
echo $file . " 不それは隠されたファイルです\n";
}
}
上記のコードは、ファイル名の最初の文字がドット番号であるかどうかを確認することにより、ファイルが非表示ファイルであるかどうかを決定します。ファイル名がドットで始まる場合、それは隠されたファイルと見なされます。
非表示のファイルをフィルタリングする場合は、ファイルリストを取得した後にさらに処理でき、非表示のファイルではないアイテムのみを残します。例えば:
$visible_files = array_filter($file_list, function ($file) {
return strpos($file, '.') !== 0; // ドットから始まるファイルを除外します
});
print_r($visible_files);
このようにして、返されたファイルリストに非表示されたファイルが含まれていないことを確認できます。これは、パブリックファイルリストを表示する必要があるシナリオに適しています。
ftp_nlistによって返されたファイルリストには、特に非表示ファイルがドットで始まるUnixおよびUnixのようなシステムで、非表示ファイルが含まれます。ファイルが非表示であるかどうかを判断するには、ファイル名がドットで始まるかどうかを確認できます。非表示のファイルをフィルタリングする必要がある場合は、 Array_Filter機能を使用して処理でき、非表示ファイルではないアイテムを保持できます。