2017-08-29 3 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"' ' '置き換えた文字列内の特殊文字を解釈について

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; } 

さらに詳しい情報:

はあなたのいずれかがPHP_EOL定数"\n"やPHPのコアを必要としています。またマニュアルを読むこともあります。 'PHP_EOL'定数も使用できます。 –

+0

@u_mulder置き換えた後、文字列の先頭に '$'を使用しているのでエラーが出ます。 –

+2

'\ n'の代わりに' PHP_EOL'を使うこともできます。 –

答えて

1

あなたは、単一引用符で囲まれた文字列($var = '\n';)内\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; 
} 
関連する問題