php - 从 FTP 服务器上的文件使用 fgetcsv

标签 php zend-framework csv

我需要从 FTP 读取 CSV 文件列表,并在成功读取后删除它们。

到目前为止,我使用 fopen 打开 csv 文件到资源中,然后使用 fgetcsv 从中读取 csv 行。

  $res = fopen($url);
  while ($csv_row = fgetcsv($res, null, self::DELIMITER)) {
  .....
  }

问题是我需要读取 csv 文件列表并将它们也删除。 ftp_get 函数将文件保存到本地文件中。我宁愿避免这种情况。我可以继续使用 fgetcsv 函数和 ftp_nlist & ftp_connect 函数吗? ?

最佳答案

您可以使用 ftp_fget() 将 csv 文件保存到临时文件流中.这使您可以避免“创建-读取-删除”循环。一旦你关闭文件流,它就好像它神奇地从未存在过:)

$ftp_handle = ftp_connect($ftp_server);
$remote_path = "/path/to/file.csv";
$tmp_handle = fopen('php://temp', 'r+');

if (ftp_fget($ftp_handle, $tmp_handle, $remote_path, FTP_ASCII)) {
  rewind($tmp_handle);
  while ($csv_row = fgetcsv($tmp_handle)) {
    // do stuff
  }
}
fclose($tmp_handle);

如果您想遍历文件目录,只需获取文件列表,然后将上面的代码放入循环中。

关于php - 从 FTP 服务器上的文件使用 fgetcsv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8347754/

相关文章:

php - 工作示例 Zend_Rest_Controller 与 Zend_Rest_Client?

php - Zend MVC - 摆脱公用文件夹

php - Javascript Span 作为 PHP 变量

php - 我正在尝试处理 PHP 中的异常,但堆栈错误仍在显示,而不是由 catch 处理

python - Python中的CSV读写

html - 将 CSV 转换为 HTML 表格(可搜索和可过滤)?

php - 将 .csv 中的 Mysqli 中的 ","中的分隔符 ";"更改为

php - 在 Yii 供应商中安装 fpdf

PHP/mysql 结果集不重复同一用户

php - Laravel 播种机中的密码字段没有散列