2012-07-31 5 views
1

는 PHP 파일을 만들려면 다음 코드를 사용했습니다 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가 그것을 제거 할 수있다 그 공백을 추가하고 "-"를 붙이십시오. "-"

+2

...이 당신은 대량 생산 하나의 변수를 각각 개최 PHP 파일을 ... 심지어 무엇을하지 않는 무엇입니까? 또한, "템플릿 삽입"이란 무엇을 의미합니까? – Palladium

+0

달성하고자하는 것을 정교하게 제발 할 수 있습니까? 여기서 누군가는 단일 변수에 대한 파일을 작성하는 대신에 더 나은 해결책을 제공 할 수 있습니다. – FatalError

+0

구성 파일을 만드는 대신 $ compname을 기반으로 데이터베이스에 일부 값을 저장하는 것이 좋습니다. 그렇지 않다면 다음 파일 (../ template.php) 다음 str_replace # var # 다시 $ compname.php 다시 쓰기 전에 사람들이 당신의 시스템에 PHP 코드를 삽입 할 수있는 보안 위험이 될 수 – Waygood

답변

2

, 당신은 이름에 화이트 스페이스를 교체하기위한() 않는 str_replace를 사용할 수 있습니다. 귀하의 질문을 올바르게 이해하면 템플릿 파일을 사용하여 PHP 파일의 내용을 생성하고자합니다. 그러기 위해서 다음과 같이 할 것입니다. 당신이 당신의 템플릿 파일이 PHP 먼저 구문 분석하려면

<?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

str_replace() '~'대체 할 것입니다. 나머지 질문은 내가 이해할 수 없습니다.

+2

심지어 필요한가요? 파일 이름은 OP에 의해 동적으로 생성됩니다. 더 나은 질문은 : 왜 그가 동적으로 생성 된 이름을 변경하는 방법을 묻는 것인가? – Palladium

+0

그건 공정한 것처럼 보이지만, 그 OP에는 그들의 이유가 있다고 가정했습니다. 즉, 자신의 문제를 만드는 것이 이상하게 보입니다. – n00dle

0

미리 만들어진 PHP 파일을 가지고 거기에있는 내용을 변경 하시겠습니까?

예를 들어 자리 표시자를 사용할 수 있습니다.

예를 PHP 파일

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

파일 편집기 :

@ianhales가 언급 한 바와 같이
//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); 
+0

대신 file.get_contents()를 편집하여 template.php 파일을 엽니 다. – Waygood

+0

OP는 $ value를 '로 설정할 수 있습니까? print_r (get_defined_vars()); echo ' – Waygood

+0

OP로도 내 회사 이름을 색인이나 스크립트 이름이나 템플릿 파일 이름으로 사용할 수 있습니까 ??? – Waygood

0

당신은 언급하지 않았다 :

그런 다음 템플릿을 사용 template.txt 파일

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

을 만듭니다. 이 방법은 할 (여부) 수 :

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) . ' ?>'