Php fwrite()变量未另存为$变量";

Php fwrite()变量未另存为$变量";,php,Php,我正在创建一个设置系统,用户输入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 =

我正在创建一个设置系统,用户输入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);
$f=fopen('settings.php','w')或die(“无法打开文件”);
fwrite($f,“”);
外国法郎(f美元);
然而,不管发生什么,$administrationemail实际上都不会显示在文件夹中

我希望文件看起来像什么:

<?php
$host = '';
$mysql_user = '';
$mysql_pass = '';
$db = '';
$administrationemail = '';
?>

它看起来像什么:

<?php $host = ''; $mysql_user = ''; $mysql_pass  = '';  $db = ''; =''; ?>

当您使用(双引号)括起字符串时,如果可能,PHP将用它们的值替换$variables。如果您在变量前面添加反斜杠,例如:\$variable,PHP将其解释为文字值,而不是变量名

$administration_email = 'admin@example.com';
$mysqlhost = 'host';
$mysqluser = 'user';
$mysqlpass = 'pass';
$mysqldb = 'db';

echo "<?php \$administrationemail = '$administration_email'; \$host = '$mysqlhost'; \$mysql_user = '$mysqluser'; \$mysql_pass = '$mysqlpass'; \$db = '$mysqldb'; ?>";
$administration\u email='2!'admin@example.com';
$mysqlhost='host';
$mysqluser='user';
$mysqlpass='pass';
$mysqldb='db';
回声“;
我用echo测试过,但用fwrite应该可以

如果需要换行符,可以在字符串中添加\n\r,如下所示:

echo str_replace(“;”,“;\n\r“,”)

或者可以使用herdoc语法()。请注意,变量上仍然需要反斜杠

$config = <<< CONFIG
<?php
\$host = '$mysqlhost';
\$mysql_user = '$mysqluser';
\$mysql_pass = '$mysqlpass';
\$db = '$mysqldb';
\$administrationemail = '$administration_email';
?>
CONFIG;

$config=这是因为您的变量不包含您认为它们的功能。只需将您需要/想要的内容分配给它们即可。谢谢。我从来都不知道\会使其作为文字值进行思考。但是似乎只有$administrationemail没有显示其余的功能。请检查变量名称和内容。