无法使用php将.csv文件从Windows复制到Linux服务器


cannot copy .csv file from Windows to Linux server using php

在php中,我可以将.txt文件从Windows操作系统上的某个位置复制到ubuntu服务器,但由于某种原因,我无法复制.csv文件。这可能与阿帕莫尔有关吗?这是我的代码,它 100% 适用于.txt。但是,如果我尝试使用.csv文件,它不起作用。

<?php
$fileName='Test.txt';
$location="C:'Users'...my location...'Local Store";
$Thispath = str_replace('''', '/',$location).'/';
$ThisFile = $Thispath.$fileName; 
$dir = $_SERVER['DOCUMENT_ROOT'].'/services/csv/';
copy($ThisFile, $dir.$fileName); 
if ( !file_exists($dir) ) {
 echo 'no file';
}
else{
 echo 'file exists';
 file_put_contents ($dir.'/hallo.txt', 'Goodbye File');
}
?>

不要使用反斜杠来指定 PHP 中的路径,尤其是在使用双引号字符串时:

$foo = "This'is'a'path'not'a'string";
echo $foo;

生产

This'is'a'path
ot'a'string

请注意 'not 中的'n是如何解释为换行符,而不是以字母 n 开头的目录名称。PHP 不知道路径/目录构造是什么。它只看到字符串。由于该双引号字符串包含一个换行符字符,因此您可以得到换行符字符。

PHP 会自动将字符串用作路径的/转换为本地操作系统的分隔符。只需使用 / 指定所有路径,让 PHP 处理转换:

$foo = "C:/foo/bar/baz"; 

如果您坚持使用反斜杠,那么请在任何地方正确转义它们:

$foo = "C:''foo''bar''baz";

以防止它们被解释为转义/元字符。