我正在写一个plan.php
的文件。这是我写的一个php文件。我正在使用\n
将新行放在该文件中,但它为我提供了保存输出。
这是代码:
$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
所以我的问题是如何将新行放在此文件中。
注意:代码中没有错误。我已经将代码最小化了。
答案 0 :(得分: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 :(得分:1)
将'
替换为"
; - )
您可以在PHP手册中了解有关字符串的更多信息:http://docs.php.net/manual/en/language.types.string.php
答案 2 :(得分:1)
如果您在单引号字符串(\n
)中使用$var = '\n';
,那么它就是 - 字符串\n
,而不是换行符。要让PHP解释它实际上应该是换行符,您需要使用双引号($var = "\n";
)。
$var = '\n'; // The litteral string \n
$var = "\n"; // Newline
答案 3 :(得分: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;
}