Как заставить переменные работать в Single Quotes правильно?

Я хочу, чтобы эти переменные были заполнены их значениями, но в файле config.php, написав имя самой переменной, я хочу, чтобы $ host конвертировал в 'localhost' с одинарными кавычками в файле config.php.

$handle = fopen('../config.php', 'w'); fwrite($handle, ' <?php $connection = mysql_connect({$host}, {$user}, {$pass}); ?> '); fclose($handle); 

Solutions Collecting From Web of "Как заставить переменные работать в Single Quotes правильно?"

Если вы используете переменные в одинарных кавычках, они будут представлены как строки вместо переменных.

Вы также можете сделать это следующим образом:

 // 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);