2016-05-16 86 views
0

我想創建一個目錄,併爲每個月創建一個文件夾。我希望我的目錄像這樣安裝。根\子文件夾\月。月份文件夾內將會生成每日報告。我編碼時遇到的問題是我收到語法錯誤,說有一個意想不到的'\'(T_NS_SEPARATOR)。我對此的代碼看起來像這樣。使用PHP創建一個目錄

$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

\不是* nix中的有效路徑分隔符 - 嘗試/因爲Windows並不挑剔並且會接受。 – CD001

+0

你在運行什麼操作系統? –

+0

目前我正在Windows 7 x64 Pro機器上編寫此代碼。稍後,這將進入一個CentOs機器 –

回答

1

好吧,看起來您的'"展示位置中存在一些語法問題。知道\被認爲是escape sequence也是很重要的,它會逃避標記後面的字符串。請嘗試執行以下操作:

file('Driver Check In\\Void\\'.$month. '\\Void_'.date('m-d-y').'.csv'); 

您是否也考慮過mkdir函數?

+0

噢,好吧,我不知道它是否被認爲是轉義序列。謝謝你那個。我可以把我的整個代碼放在一邊,這樣你就可以看到我是如何實現的。我確實有一個mkdir函數,但是如果該文件路徑不存在,我只實現它。給我大約10-15分鐘,我會發布我的代碼,以便你可以看到。 –

+0

好的,你是否嘗試用我提供的那個替換你的字符串?我不確定你是否仍然有問題。 –

+0

是的,我將其替換爲您的產品,但沒有收到錯誤消息。當我用你所擁有的東西取代之後,我確實收到了syntax.syntax錯誤,意外的'''''(T_CONSTANT_ENCAPSED_STRING)的錯誤信息。但是當我帶走單個'時,錯誤消失了,但是我收到了警告消息說這個目錄不存在 –

0

你逃避你反斜槓所以他們不會消耗你的報價。 我建議使用PHP常量DIRECTORY_SEPARATOR(在這裏列出:http://php.net/manual/en/dir.constants.php)而不是反斜槓..

'驅動入住\虛空\' $一個月。 '\空隙_'。日期( 'M-d-Y')。 「CSV」 後空隙\

反斜槓消耗報價並把它解釋爲字符串的一部分,不關閉字符串的字符。