2014-09-05 3 views
1

Я пробовал искать способ избежать php в строке и не увенчался успехом. Я в основном хочу иметь возможность писать строку, содержащую php, без php-анализа.Escape PHP в String

Ошибка:

Undefined Variable 

Код

$file = fopen("test.php", "w"); 
$content = "<?php echo $somevariable; ?>"; 
fwrite($file, $content); 

* обновлен, чтобы показать переменную в строку.

+6

Используйте одинарные кавычки. –

+2

PHP не будет выполнять встроенный PHP. То, что у вас есть, будет работать именно так, как вы хотите: символы '' '', '' ',' p' и т. Д. ... будут записаны в файл. –

+0

Ух, что вам нужно? Ваш код выглядит отлично. – Nicolas

ответ

4

Переменные в двойные кавычки expanded:

The most important feature of double-quoted strings is the fact that variable names will be expanded. See string parsing for details.

Используйте одинарные:

$content = '<?php echo $somevariable; ?>'; 

или nowdoc:

$content = <<<'EOD' 
<?php echo $somevariable; ?> 
EOD; 

A nowdoc is specified similarly to a heredoc, but no parsing is done inside a nowdoc.

+0

nowdoc - хорошая идея! –