在 CentOS 系統中,你可以使用 readdir
函數來讀取遠程目錄中的文件。但是,readdir
本身并不直接支持遠程文件讀取。你需要結合其他技術來實現這一功能。以下是兩種常見的方法:
SFTP(SSH File Transfer Protocol)是一種通過 SSH 加密的文件傳輸協議。你可以使用 PHP 的 ssh2
擴展來實現 SFTP 連接和文件讀取。
安裝 ssh2
擴展:
sudo yum install php-ssh2
重啟 Web 服務器:
sudo systemctl restart httpd
編寫 PHP 腳本:
<?php
// 連接到 SFTP 服務器
$sftp = ssh2_connect('remote_host', 22);
ssh2_auth_password($sftp, 'username', 'password');
// 打開遠程目錄
$dir = ssh2_scp_send($sftp, 'remote_directory', '/tmp/remote_directory');
// 讀取目錄內容
if ($dir) {
$files = scandir('/tmp/remote_directory');
foreach ($files as $file) {
if ($file != '.' && $file != '..') {
echo $file . "\n";
}
}
} else {
echo "Failed to open remote directory.\n";
}
// 關閉連接
ssh2_disconnect($sftp);
?>
FTP(File Transfer Protocol)是一種用于文件傳輸的協議。你可以使用 PHP 的 ftp
擴展來實現 FTP 連接和文件讀取。
安裝 ftp
擴展:
sudo yum install php-ftp
重啟 Web 服務器:
sudo systemctl restart httpd
編寫 PHP 腳本:
<?php
// 連接到 FTP 服務器
$ftp_server = 'ftp.example.com';
$ftp_user_name = 'username';
$ftp_user_pass = 'password';
$conn_id = ftp_connect($ftp_server);
// 登錄到 FTP 服務器
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if ($login_result) {
// 打開遠程目錄
$ftp_dir = ftp_nlist($conn_id, '/remote_directory', function($file) {
echo $file . "\n";
});
if (!$ftp_dir) {
echo "Failed to open remote directory.\n";
}
} else {
echo "FTP connection failed.\n";
}
// 關閉連接
ftp_close($conn_id);
?>
通過以上方法,你可以在 CentOS 系統中使用 PHP 實現遠程文件讀取。