Вопрос
Мне интересно, возможно ли записать php-код в файл.Например:
fwrite($handle, "<?php $var = $var2 ?>");
Я бы хотел, чтобы он выдавал точную строку в файле, а не оцененный код.Возможно ли это?
В настоящее время я получаю следующий вывод (где $ var = 1 и $ var2 = 2):
<?php 1 = 2 ?>
Принимая во внимание, что мне нужна фактическая строка:
<?php $var = $var2 ?>
Спасибо за помощь
Решение
Вы можете использовать одинарные кавычки вместо двойных, которые не расширяют имена встроенных переменных:
fwrite($handle, '<?php $var = $var2 ?>');
Другие советы
Просто экранируйте символ $
<?php
fwrite($handle, "<?php \$var = \$var2 ?>");
?>
строки, заключенные в двойные кавычки, анализируются на предмет наличия переменных, и значение переменных вставляется в эту позицию.я полагаю, это связано с тем, что php изначально был разработан как тонкий слой шаблонов веб-сервера и базы данных.
лично мне это не нравится, и из-за этого я никогда не использую двойные кавычки.вместо этого я всегда использую одинарные кавычки и объединение строк:
<?php echo 'hello, ' . $name; ?>
делает то же самое , что и:
<?php echo "hello, $name"; ?>
одинарные кавычки:раскраска синтаксиса работает лучше, это (незначительно) быстрее, и ошибки обнаруживаются легче
Это не имеет никакого отношения к файловому вводу-выводу.Прочитайте о подстановке переменных и экранировании в строках в PHP.