I want those variables to be filled with their values, but in config.php file its writing the variable name itself, I want like $host convert to 'localhost' with single quotes in the config.php file.
$handle = fopen('../config.php', 'w');
fwrite($handle, '
<?php
$connection = mysql_connect({$host}, {$user}, {$pass});
?>
');
fclose($handle);
If you use variables within single quotes, they will be represented as strings instead of variables.
You can also do it like this:
// Get from $_SESSION (if started)
$host = $_SESSION['host'];
$user = $_SESSION['user'];
$pass = $_SESSION['pass'];
$handle = fopen('../config.php', 'w');
// try with the {}
$content = '<?php $connection = mysql_connect('."{$host},"."{$user},"."{$pass});".'?>';
// or you can try this too, but comment out the other one:
$content = '<?php $connection = mysql_connect('."\"$host\","."\"$user\","."\"$pass\");".'?>';
fwrite($handle, $content);
fclose($handle);
You can't. Single quotes do not interpolate variables. It the major thing that distinguishes them from double quotes. Use double quotes (or something else, such as sprintf) instead.
If you use double quotes it works:
$handle = fopen('../config.php', 'w');
fwrite($handle, "
<?php
$connection = mysql_connect({$host}, {$user}, {$pass});
?>
");
fclose($handle);
来源:https://stackoverflow.com/questions/24841700/how-to-make-variables-work-in-single-quotes-properly