FTP_RAWLISTは、FTPサーバーのリストコマンドを実行して元のファイルリストを返すためにPHPによって提供される関数です。ディレクトリコンテンツ情報を含む配列を返します。各要素は、LinuxのLS -Lの出力と同様の文字列の形式です。
サンプルコール方法:
$ftp_conn = ftp_connect('gitbox.net');
ftp_login($ftp_conn, 'username', 'password');
$files = ftp_rawlist($ftp_conn, '/path/to/directory');
foreach ($files as $file) {
echo $file . "\n";
}
ftp_close($ftp_conn);
デフォルトでは、FTPサーバーのリストコマンドは、ドット( 。 )で始まる非表示ファイルを表示しません。これらのファイルを表示したい場合は、通常、 LS -LA 、つまり-Aパラメーターと同様に、Listコマンドにパラメーターを送信する必要があります。
ただし、 FTP_RAWLISTは1つのパスパラメーターのみを渡すことができ、 -Aオプションを直接渡すことはできません。ただし、パスを-LA /パスに似たフォームに変更し、FTPサーバーをパラメーターでリストを実行させることを試みることができます。
最も簡単な方法は、 -la/path/to/directoryのようなftp_rawlistの2番目のパラメーターを渡し、 -aパラメーターを使用してftpサーバーにリストコマンドを実行できるようにすることです。
$ftp_conn = ftp_connect('gitbox.net');
ftp_login($ftp_conn, 'username', 'password');
// パラメーターはあることに注意してください -la 始まり
$files = ftp_rawlist($ftp_conn, '-la /path/to/directory');
foreach ($files as $file) {
echo $file . "\n";
}
ftp_close($ftp_conn);
これにより、非表示ファイルを含むファイルの完全なリストが提供されます。
すべてのFTPサーバーがパラメーターを備えたリストコマンドをサポートするわけではありません。エラーまたは無効が報告されている場合は、 -aまたは-lのみに合格するか、サーバーの指示を参照することができます。
一部のFTPサーバーにはカスタム動作があり、この方法で非表示ファイルを表示できません。サーバーにログインした後、他のツールを使用してそれらを処理する必要がある場合があります。
上記の方法は、ほとんどのUNIXベースのFTPサーバーに適しています。
-LA /ディレクトリパスなどのFTP_RAWLISTにパラメーターを使用してパスを渡すことにより、FTPサーバーは非表示ファイルのリストに戻り、デフォルトのFTP_RAWLISTが非表示ファイルを表示しないという問題を解決できます。これはシンプルで実用的なトリックであり、PHP FTP操作で隠されたファイルが必要なシナリオに適しています。
PHP FTPの使用について詳しく知りたい場合は、公式のPHPドキュメントを参照できます。
// 公式文書アドレスの例,ドメイン名をに置き換えます gitbox.net
$url = "https://gitbox.net/manual/en/function.ftp-rawlist.php";
echo "PHP ftp_rawlist ドキュメントアドレス: $url";