Я хочу, чтобы эти переменные были заполнены их значениями, но в файле config.php, написав имя самой переменной, я хочу, чтобы $ host конвертировал в 'localhost' с одинарными кавычками в файле config.php.
$handle = fopen('../config.php', 'w'); fwrite($handle, ' <?php $connection = mysql_connect({$host}, {$user}, {$pass}); ?> '); fclose($handle);
Если вы используете переменные в одинарных кавычках, они будут представлены как строки вместо переменных.
Вы также можете сделать это следующим образом:
// 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);
Вы не можете. Одиночные кавычки не интерполируют переменные . Главное, что отличает их от двойных кавычек. Вместо этого используйте двойные кавычки (или что-то еще, например sprintf
).
Если вы используете двойные кавычки, это работает:
$handle = fopen('../config.php', 'w'); fwrite($handle, " <?php $connection = mysql_connect({$host}, {$user}, {$pass}); ?> "); fclose($handle);