如何在php文件中插入模板

时间:2012-07-31 15:48:45

标签: php templates

我使用以下代码动态创建PHP文件

$value = 5;
$file = $compname.'.php';
$file_pointer = fopen( $file, 'w' );
$string = '<?php $var = '. $value .' ?>';
fwrite( $file_pointer, $string );
fclose($file_pointer);
include($file);
echo $var;

是否可以在该php文件中插入模板,文件名为conatins space是否可以删除这些空格并添加“ - ”

4 个答案:

答案 0 :(得分:2)

正如@ianhales所提到的,您可以使用str_replace()替换名称中的空格。如果我正确理解您的问题,您希望使用模板文件来生成PHP文件的内容。为此,我会做以下几点。

创建template.txt文件

<?php
 $var = #THEVAR#;
?>

然后使用模板:

<?php
 ...
 $value = 5;
 $template = file_get_contents('template.txt');
 $template = str_replace("#THEVAR#", $value, $template);
 $newFile = fopen($compname.'.php', 'w');
 fwrite($newFile, $template);
 fclose($newFile);
 ...

答案 1 :(得分:1)

str_replace( )会做''到' - '替换。你的其余问题我不明白。

答案 2 :(得分:0)

你是说你想要一个预制的PHP文件并在那里改变一些东西吗?

例如,您可以使用占位符。

示例 PHP文件

<?php
$var = '[%%VAR1%%]';
?>

文件编辑器:

//Change filename
str_replace(' ', '-', $compname);

//File "template editor"   
$value = 5;
$file = file_get_contents($compname.'.php');
str_replace('[%%VAR1%%]',$value, $file);
file_put_contents($compname.'.php', $file);

答案 3 :(得分:0)

您没有提及是否希望首先对您的模板文件进行PHP解析。这种方法可以(或不):

function getTemplateContent($includeFile, $parsePhp = TRUE) {
$cont = '';
if ($parsePhp) {
    try {
        ob_start();
        require($includeFile);
        $cont = ob_get_contents();
        ob_end_clean();
    } catch (Exception $ex) {
        $cont = '';
    }
} else {
    $cont = file_get_contents($includeFile); #
}
return $cont;
}

将模板内容包含在书面文件中可以像例如

那样进行
$string = '<?php $var = '. $value . ';' . getTemplateContent($templateFile, TRUE/FALSE) . ' ?>'