【发布时间】:2013-01-17 19:20:21
【问题描述】:
我有一个脚本可以连接到外部 ftp 服务器并下载文件夹的内容。
目前它将下载文件夹中的所有文件。如何修改以下脚本以仅下载和处理 .csv 文件而忽略任何其他文件?
我的脚本是(100% 有效):
$timenow=time();
$ftp_server = "ftp.domain.com";
$conn_id = ftp_connect($ftp_server);
$ftp_user_name = "username";
$ftp_user_pass = "password";
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
$contents = ftp_nlist($conn_id, 'LoadsOverWB');
$targetnameprocesses ="LoadsOverWB-$timenow.csv";
$filename = $contents[0];
echo "<br><font color=blue><b>Import into LOC MySQL.....</b></font><br>";
// import file
if ((empty($filename))) { echo "$filename not existing to import.";} else {
$source = "LoadsOverWB/$filename";
$target = fopen("$filename", "w");
$conn = ftp_connect("ftp.hulamin.co.za") or die("Could not connect");
ftp_login($conn,"TransportLogistics","Qaz1234");
ftp_fget($conn,$target,$source,FTP_ASCII);
echo "file downloaded. <br>";
一如既往地感谢您的帮助,
【问题讨论】:
-
$source 是下载的文件,改一下,去掉循环
-
感谢 Dagon,我如何判断 $Source 是否为 csv 文件,如果不是则忽略。 $source 实际上是 ftp 列表中的第一个文件?再次感谢。
-
你知道你要的文件的文件名吗?
-
文件名是一个带有时间戳的变量,因此脚本当前正在查看列表
ftp_nlist中的第一个文件,而$contents[0]是该列表中的第一个文件。我只想排除所有不是 csv 的文件?这个可以吗?