我正在尝试创建一个目录,它将为每个月创建一个文件夹。我希望我的目录设置如下。 Root \子文件夹\月。月份文件夹内将是将生成的每日报告。我编码时遇到的问题是我收到语法错误,说有一个未预料到的'\'(T_NS_SEPARATOR)。我拥有的代码就像这样。
$month = date('M');
file('Driver Check In\Void\'.$month. '\Void_'.date('m-d-y').".csv");
我还有代码,如果它不存在,将创建月份文件夹。
如何解决此问题?
完整代码
if(isset($_POST['Void']))
{
$month6 = date('M');
$fp6 = file('Driver Check In\Void\\'.$month6. '\Void_'.date('m-d-y'). '.csv');
$header6 = array("Date", "Customer", "Location/City", "Driver", "Cases", "Bottles", "Reason", "Comment");
$dates6 = $_POST['dates6'];
$customer2 = $_POST['customer2'];
$location2 = $_POST['location2'];
$driver6 = $_POST['drivers6'];
$cases6 = $_POST['cases6'];
$bottles6 = $_POST['bottles6'];
$reason2 = $_POST['reason2'];
$comment2 = $_POST['comment2'];
$result6 = '';
$search6 = "Date";
$line_number6 = false;
while(list($key6, $line6) = each ($fp6) and !$line_number6)
{
$line_number6 = (strpos($line6, $search6) !== FALSE);
}
if($line_number6)
{
$result6 .=
$dates6. " ,". $customer2. " ,". $location2. " ,". $driver6. " ,". $cases6. " ,". $bottles6. " ,". $reason2. " ,". $comment2. "\r\n";
}
else
{
$result6 .= implode(",", $header6). "\r\n".
$dates6. " ,". $customer2. " ,". $location2. " ,". $driver6. " ,". $cases6. " ,". $bottles6. " ,". $reason2. " ,". $comment2. "\r\n";
}
if(!is_dir('Driver Check In\Void\\'.$month6))
{
mkdir('\Driver Check In\Void\\'.$month6);
}
file_put_contents('Driver Check In\Void\\'.$month6. '\Void_'.date('m-d-y'). ".csv", $result6, FILE_APPEND);
echo "data added6";
}
答案 0 :(得分:1)
好吧,对于您的'
和"
展示位置,您看起来有一些语法问题。同样重要的是要知道\
被认为是escape sequence,它将逃脱标记后面的字符串。尝试执行以下操作:
file('Driver Check In\\Void\\'.$month. '\\Void_'.date('m-d-y').'.csv');
您是否也考虑了mkdir功能?
答案 1 :(得分:0)
你必须逃避你的反斜杠,所以他们不会消耗你的报价。 我建议使用php常量 DIRECTORY_SEPARATOR (在此处列出:http://php.net/manual/en/dir.constants.php)而不是反斜杠..
在Void \之后'Driver Check In \ Void \'。$ month。 '\空隙_'。日期( 'M-d-Y')。 “CSV”
反斜杠消耗引号并将其解释为字符串的一部分,而不是关闭字符串的字符。