我正在创建一个设置系统,用户输入了5个值,这些值已在文件中设置:
$f = fopen('settings.php', 'w') or die("can't open file");
fwrite($f, "<?php $administrationemail = '$administration_email'; $host = '$mysqlhost'; $mysql_user = '$mysqluser'; $mysql_pass = '$mysqlpass'; $db = '$mysqldb'; ?>");
fclose($f);
但是,无论$ administrationemail实际显示在该文件夹中如何。
我希望文件看起来像什么:
<?php
$host = '';
$mysql_user = '';
$mysql_pass = '';
$db = '';
$administrationemail = '';
?>
看起来像什么:
<?php $host = ''; $mysql_user = ''; $mysql_pass = ''; $db = ''; =''; ?>
当使用“(双引号)将字符串括起来时,PHP会尽可能用$ value替换其值。如果在变量前面添加反斜杠,例如:\ $ variable,PHP会将其解释为文字值,而不是变量名。
$administration_email = '[email protected]';
$mysqlhost = 'host';
$mysqluser = 'user';
$mysqlpass = 'pass';
$mysqldb = 'db';
echo "<?php \$administrationemail = '$administration_email'; \$host = '$mysqlhost'; \$mysql_user = '$mysqluser'; \$mysql_pass = '$mysqlpass'; \$db = '$mysqldb'; ?>";
我用echo进行了测试,但使用fwrite应该可以。
如果要换行,可以在字符串中添加\ n \ r,如下所示:
echo str_replace(';',“; \ n \ r”,“ <?php \ $ administrationemail ='$ administration_email'; \ $ host ='$ mysqlhost'; \ $ mysql_user ='$ mysqluser'; \ $ mysql_pass = ''$ mysqlpass'; \ $ db ='$ mysqldb';?>“);
或者,您可以使用heredoc语法(http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc)。请注意,变量上仍需要反斜杠。
$config = <<< CONFIG
<?php
\$host = '$mysqlhost';
\$mysql_user = '$mysqluser';
\$mysql_pass = '$mysqlpass';
\$db = '$mysqldb';
\$administrationemail = '$administration_email';
?>
CONFIG;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句