1

我使用以下代码动态创建 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文件中插入模板并且文件名包含空格是否可以删除这些空格并添加“-”

4

4 回答 4

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);
 ...
于 2012-07-31T16:06:27.170 回答
1

str_replace( )将执行您的 ' ' 到 '-' 替换。你剩下的问题我不明白。

于 2012-07-31T15:52:10.920 回答
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) . ' ?>'
于 2012-07-31T16:40:30.620 回答
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);
于 2012-07-31T15:57:53.787 回答