【问题标题】:download only .csv files from external FTP server to my ftp server仅将 .csv 文件从外部 FTP 服务器下载到我的 ftp 服务器
【发布时间】: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 的文件?这个可以吗?

标签: php ftp


【解决方案1】:

试试这个:

if ('.csv' == strtolower(substr($filename, -4))) { //Get the file }

【讨论】:

  • 谢谢,错误信息: Call to undefined function lower() in...
  • 对不起。在 PHP 中是 strtolower()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-30
  • 1970-01-01
  • 2020-11-07
  • 1970-01-01
  • 2015-03-21
  • 2015-07-27
相关资源
最近更新 更多