在PHP中更新FTP服务器中的CSV文件

在PHP中更新FTP服务器中的CSV文件,php,ftp,Php,Ftp,我正在尝试更新一个CSV文件,在一个外部FTP服务器中,我尝试按照基本的FTP_fput()进行更新,但它不起作用。当我运行此脚本时,文件没有更新,并且正在下载一个空白的CSV文件,这是不需要的。我一直在试图解决这个问题,但找不到解决办法 <?php // connect and login to FTP server //ftp setup $ftp_server = "ftp.test.test.co.uk"; $ftp_conn = ftp_connect($ft

我正在尝试更新一个CSV文件,在一个外部FTP服务器中,我尝试按照基本的FTP_fput()进行更新,但它不起作用。当我运行此脚本时,文件没有更新,并且正在下载一个空白的CSV文件,这是不需要的。我一直在试图解决这个问题,但找不到解决办法

<?php

// connect and login to FTP server
//ftp setup
 $ftp_server = "ftp.test.test.co.uk";
        $ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
        $ftp_username='ftp_username';
        $ftp_userpass='ftp_userpass';
      $login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);

//local DB setup
$servername = "localhost";
$username = "root";
$password = "TEST";
$dbname= "TEST";

// Create connection
$conn = new mysqli($servername, $username, $password,$dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
//END database connection//



$sql = "SELECT sku,SUM(quantity) as quantity FROM tbl_old_books GROUP BY isbn";

$result = $conn->query($sql);

         header("Content-Disposition: attachment; filename=AllOpenOrders.csv");
         header("Content-Type: application/csv; ");

         // file creation
       $file = fopen('php://temp', 'W');

        $header = array("SKU","QUANTITY");
        fputcsv($file, $header);


      if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
            fputcsv($file, $row );
        }
    }

 $remote_path = "/export/AllOpenOrders.csv";

ftp_fput($ftp_conn, $remote_path, $file, FTP_BINARY, 0);


  fclose($file);
ftp_close($ftp_conn);
?>

您在文件中写入时,文件处理程序
$file
指向文件的末尾。通过
ftp\u fput
没有什么可写的了


您可以使用
倒带($file)在文件开头重置文件指针写入FTP之前:

哪个部分“不工作”?未更新中的现有CSV文件,文件权限为777,但仍无法获取新记录。@JayBlanchard
fopen
move不相关。OP正在创建内存缓冲区。不工作。我把W改成了我们需要的A.@Sylvestr。我很确定90%的代码与您当前的问题无关。首先,您可以使用PHP+将本地测试文件上载到FTP服务器吗您是否从FTP函数调用中收到任何PHP错误/警告?
ftp\u fput
返回什么?感谢您的回答,但在我的临时文件中添加行后,如果我倒带()该文件,它会显示错误消息“stream不支持查找”,请尝试将此建议与
$file=fopen('php://temp","w",
(小写
w
)+您使用的是什么版本的PHP?