在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";
以防止它们被解释为转义/元字符。