将查询结果另存为 json 到网络驱动器上的文本文件中

Save query results as json into text file on network drive

我可以将结果保存为 JSON。我遇到的问题是将它保存到网络驱动器。

我使用以下方法确认路径是正确的:

if ($handle = opendir('//network/IS/folder1/folder2/targetdirectory')) 
{
  echo "Directory handle: $handle\n";
  echo "Entries:\n";

  // This is the correct way to loop over the directory. 
  while (false !== ($entry = readdir($handle))) {
    echo "$entry\n";
  }

  // This is the WRONG way to loop over the directory. 
  while ($entry = readdir($handle)) {
    echo "$entry\n";
  }

  closedir($handle);
}

使用上面的方法,我可以看到目标目录中的所有文件。故知道善。它是 writing/creating 要保存在目标目录中的文本文件。

整个过程是这样的:

<?php
  include("../include/sessions.php");

  if(isset($_POST['selectedOption']))
  {
    $svc1 = mysqli_real_escape_string($dbc, $_POST['selectedOption']);

    $sql = "SELECT column1, column2, column3 FROM table WHERE column1 = '$svc1'";

    $query = mysqli_query($dbc, $sql);

    if($query)
    {
      $out = array(); 
      while($row = $query->fetch_assoc())
      {
        $out[] = $row;
      }
      $json = json_encode($out);  // I can change $json to echo and see the $out in the console as json

      $file = fopen(__DIR__ . "//network/IS/folder1/folder2/targetdirectory", 'w');
      fwrite($file, $json);
      fclose($file);
    }
    else
    {
      echo "Error: " . mysqli_error($dbc);
    }
?>

使用上述过程,没有任何内容被保存到目标目录中。

我能做些什么来解决这个问题?

我通过删除 DIR 并在路径末尾添加文件名解决了我的问题:

$file = fopen("//network/IS/folder1/folder2/targetdirectory/newFile.txt", 'w');
fwrite($file, $json);
fclose($file);

PHP命令"file_put_contents",虽然成功创建了一个文件,但只是继续追加到同一个文件。使用上面会覆盖目标目录中的目标文件。