2017-08-29 80 views
-2

我正在寫一個文件是plan.php。這是一個我正在寫的php文件。我正在使用\n將新行放在該文件中,但它給我保存輸出。如何把新文件放在php文件中fwrite

這裏是代碼:

$datetime = 'Monthly'; 
$expiry = '2017-08-07'; 
$expiryin = str_replace('ly', '',$datetime); 
if($expiryin == 'Month' || $expiryin == 'Year') { 
    $time = '+ 1'.$expiryin.'s'; 
} else { 
    $time = '+'.$expiryin.'s'; 
} 
    $expiry_date = date('Y-m-d', strtotime($time, strtotime($expiry))); 

$string = createConfigString($expiry_date); 

$file = 'plan.php'; 
$handle = fopen($file, 'w') or die('Cannot open file: '.$file); 
fwrite($handle, $string); 

而且功能:

function createConfigString($dates){ 
    global $globalval; 

    $str = '<?php \n\n'; 
    $configarray = array('cust_code','Auto_Renew','admin_name'); 
    foreach($configarray as $val){ 
      $str .= '$data["'.$val.'"] = "'.$globalval[$val].'"; \n'; 
    } 
    $str .= '\n'; 
    return $str; 
} 

但它給人的輸出,如:

<?php .......something....\n.....\n 

所以我的問題是如何把此文件中有新行。

注意:代碼沒有錯誤。我已經最小化了放在這裏的代碼。

+5

更換''\ n''到' 「\ n」'。有時閱讀手冊。你甚至可以使用'PHP_EOL'常量。 –

+0

@u_mulder替換它後給我錯誤,因爲我在字符串的開頭使用'$'。 –

+2

您也可以使用'PHP_EOL'替代'\ n'。 –

回答

2

大家都已經提到'\n'只是一個兩個符號串\n

您也需要一個"\n"或PHP核心不變PHP_EOL

function createConfigString($dates){ 
    global $globalval; 

    // change here 
    $str = '<?php ' . PHP_EOL . PHP_EOL; 
    $configarray = array('cust_code','Auto_Renew','admin_name'); 
    foreach($configarray as $val){ 
     // change here 
     $str .= '$data["'.$val.'"] = "'.$globalval[$val].'";' . PHP_EOL; 
    } 
    // change here 
    $str .= PHP_EOL; 
    return $str; 
} 

更多信息有關字符串解釋特殊字符http://php.net/manual/en/language.types.string.php#language.types.string.syntax.double

1

如果使用\n單引號字符串($var = '\n';)內,這將是這一點 - 輸出字符串\n,而不是換行符。爲了解釋PHP實際上應該是換行符,您需要使用雙引號($var = "\n";)。

$var = '\n';  // The litteral string \n 
$var = "\n";  // Newline 
0

\n並不單引號,如'\n'內工作。您需要使用雙引號"\n"。所以,你的目的,你需要做的變化是:

function createConfigString($dates){ 
    global $globalval; 

    $str = '<?php \n\n'; 
    $configarray = array('cust_code','Auto_Renew','admin_name'); 
    foreach($configarray as $val){ 
     $str .= "$data['".$val."'] = '".$globalval[$val]."'; \n"; // change places of double and single quotes 
    } 
    $str .= "\n"; // change places of double and single quotes 
    return $str; 
}