fwrite()变量未保存为“ $ variable”

用户名

我正在创建一个设置系统,用户输入了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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章