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ファイルを用意して、そこでいくつかの変更を加えたいということですか?

たとえば、プレースホルダーを使用できます。

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 に答える
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 に答える