使用PHP创建目录

时间:2016-05-16 14:30:09

标签: php

我正在尝试创建一个目录,它将为每个月创建一个文件夹。我希望我的目录设置如下。 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";


}

2 个答案:

答案 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)而不是反斜杠..

  

'Driver Check In \ Void \'。$ month。 '\空隙_'。日期( 'M-d-Y')。 “CSV”

在Void \之后

反斜杠消耗引号并将其解释为字符串的一部分,而不是关闭字符串的字符。