php读取FTP服务器csv档
最近要写读取FTP服务器上的csv档,记录下:
第一种方法: 使用ftp系列函数将FTP服务器的文件下载到本地,再打开读取内容
$ftp_server = "192.168.1.14"; $ftp_user_name = "ftp_username"; $ftp_user_pass = "ftp_password"; $conn_id = ftp_connect($ftp_server); $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); $local_file = './local.csv'; $remote_file='path/to/file.csv'; $handle = fopen($local_file, 'w+'); //将远程文件下载到本地 ftp_fget($conn_id, $handle, $remote_file, FTP_ASCII, 0); fclose($handle); ftp_close($conn_id); $handle = fopen($local_file, 'r'); $data = fgetcsv($handle); while (($data = fgetcsv($handle)) !== FALSE) { if (!isset($data[0]) || $data[0] == '') break; ... } fclose($handle);
第二种方法:使用fopen函数读取FTP服务器的文件,直接读取,不用下载,完胜第一种方法
$file = "ftp://ftp_username:ftp_password@192.168.1.14/path/to/file.csv"; $handle = fopen($file, "r"); $data = fgetcsv($handle); while (($data = fgetcsv($handle)) !== FALSE) { if (!isset($data[0]) || $data[0] == '') break; ... } fclose($handle);