Php 使用文件获取内容()处理上载文件

Php 使用文件获取内容()处理上载文件,php,csv,Php,Csv,我有一个PHP脚本,可以处理上传到临时目录中的CSV,然后有5行代码将CSV转换为JSON 我的PHP脚本: if (isset($_FILES['csvList']['type'])) { $validExtensions = array("csv"); $temporary = explode(".", $_FILES["csvList"]["name"]); $file_extension = end($temporary); if (in_array($file_ex

我有一个PHP脚本,可以处理上传到临时目录中的CSV,然后有5行代码将CSV转换为JSON

我的PHP脚本:

if (isset($_FILES['csvList']['type'])) {

  $validExtensions = array("csv");
  $temporary = explode(".", $_FILES["csvList"]["name"]);
  $file_extension = end($temporary);

  if (in_array($file_extension, $validExtensions)) {

    if ($_FILES["csvList"]["error"] > 0) {

      echo "Return Code: " . $_FILES["csvList"]["error"] . "<br/><br/>";
    } else {

      if (file_exists("/var/www/tmp/" . $_FILES["csvList"]["name"])) {

        echo $_FILES["csvList"]["name"] . " <span id='invalid'><b>already exists.</b></span> ";

      } else {

        $sourcePath = $_FILES['csvList']['tmp_name']; // Storing source path of the file in a variable
        $targetPath = "/var/www/tmp/".$_FILES['csvList']['name']; // Target path where file is to be stored

        move_uploaded_file($sourcePath,$targetPath) ; // Moving Uploaded file

        $csvFile = $sourcePath;
        $csv = file_get_contents($csvFile);
        $csvArray = array_map("str_getcsv", explode("\n", $csvFile));
        $csvToJson = json_encode($csvArray);
        print_r($csvToJson);
      }
    }
  }
}
$sourcePath = $_FILES['csvList']['tmp_name'];       // Storing source path of the file in a variable
$targetPath = "/var/www/tmp/".$_FILES['csvList']['name']; // Target path where file is to be stored
move_uploaded_file($sourcePath,$targetPath) ;    // Moving Uploaded file
[["\/tmp\/phpYeuuBB"]]
这是我的临时文件的文件路径,我做错了什么

以下是我的CSV的外观-

更新:我的JSON格式不正确,名称旁边有“和”

{"data":["[[\"Debra Brown\"],[\"Jacqueline Garza\"],[\"Kenneth Foster\"],[\"Antonio Howell\"],[\"Fred Rogers\"],[\"Robert Stanley\"],[\"Jesse Price\"],[\"Henry Bishop\"],[\"Marilyn Phillips\"],[\"Charles White\"],[\"Dennis Lawrence\"],[\"Nicholas Thompson\"],[\"Chris Graham\"],[\"Louis Dean\"],[\"Katherine Green\"],[\"Janice Peters\"],[\"Bobby Wood\"],[\"Bruce King\"],[\"Diane Mills\"],[\"Jane Fields\"],[\"Amanda Gutierrez\"],[\"Russell Cunningham\"],[\"Judith Matthews\"],[\"Carol Franklin\"],[\"Jose Murray\"],[\"Kathryn Cole\"],[\"Katherine Gardner\"],[\"Lois Woods\"],[\"Andrew Bryant\"],[\"Victor Wright\"],[\"Adam Russell\"],[\"Tina Gilbert\"],[\"Shawn Boyd\"],[\"Wanda Porter\"],[\"Rose Morris\"],[\"John Mccoy\"],[\"Frances Gibson\"],[\"Willie Lopez\"],[\"Chris Reyes\"],[\"Craig Vasquez\"],[\"Diane Simmons\"],[\"Mary Little\"],[\"Patricia Fowler\"],[\"Jane Perkins\"],[\"Juan Brooks\"],[\"Bruce Howard\"],[\"Tammy Richardson\"],[\"Jane Gomez\"],[\"Tammy Matthews\"],[\"Matthew Fox\"],[null]]"]}
应如何-

{"data":[["Debra Brown"]]}
当我打印
$csv


您正在将文件分配给变量
$csv
,但随后您正在执行以下操作:

$csvArray = array_map("str_getcsv", explode("\n", $csvFile));
变量
$csvFile
仍然包含您以前设置为
$sourcePath
的文件路径。从
file\u get\u contents()
返回的实际文件字符串位于
$csv
中。如果将其更改为如下所示:

$csvArray = array_map("str_getcsv", explode("\n", $csv));
你可能会发现这解决了你的问题


以下是

您正在将文件分配给变量
$csv
,但您正在执行以下操作:

$csvArray = array_map("str_getcsv", explode("\n", $csvFile));
变量
$csvFile
仍然包含您以前设置为
$sourcePath
的文件路径。从
file\u get\u contents()
返回的实际文件字符串位于
$csv
中。如果将其更改为如下所示:

$csvArray = array_map("str_getcsv", explode("\n", $csv));
你可能会发现这解决了你的问题


以下是

看起来您正在将CSV的路径输入到str_getcsv

$csvArray = array_map("str_getcsv", explode("\n", $csvFile));
而不是您的实际CSV内容

$csvArray = array_map("str_getcsv", explode("\n", $csv));

看起来您正在将CSV的路径输入到str_getcsv

$csvArray = array_map("str_getcsv", explode("\n", $csvFile));
而不是您的实际CSV内容

$csvArray = array_map("str_getcsv", explode("\n", $csv));

非常好用,谢谢,你有没有可能知道为什么我的JSON前面有\和引号?检查我更新的帖子。@Kieron606首先,如果你打印出来,这些斜杠是否存在于
$csv
中?其次,在
str_getcsv()中会发生什么
?这可能是您遇到的问题的一部分。
$csv
看起来很完美在'str_getcsv()中发生了什么那么?如果这完全不相关的话,也许值得问一个新问题……工作得很好,谢谢,你有机会知道为什么我的JSON前面有\和引号吗?检查我更新的帖子。@Kieron606首先,如果你打印出来,这些斜杠是否存在于
$csv
中?其次,在
str_getcsv()中会发生什么
?这可能是您遇到的问题的一部分。
$csv
看起来很完美那么在'str_getcsv()中会发生什么?如果这完全不相关,可能值得问一个新问题。。。