2012-12-09 6 views
2

PHP 스크립트 또는 PHP 명령을 사용하여 .PHP 파일을 실제로 생성해야합니다. 내가 언어에 대한 여러 선택이 원하기 때문에이 작업을 수행 할 수PHP 파일에서 PHP 코드 내보내기

<?php 
class TextToSpeech { 
    public $mp3data; 
    function __construct($text="") { 
     $text = trim($text); 
     if(!empty($text)) { 
      $text = urlencode($text); 
      $lang_en="http://translate.google.com/translate_tts?tl=en&q={$text}"; 
      $lang_ro="http://translate.google.com/translate_tts?tl=ro&q={$text}"; 
      $lang_fr="http://translate.google.com/translate_tts?tl=fr&q={$text}"; 
      $language=$lang_en; 
      $this->mp3data = file_get_contents($language); 
     } 
    } 

    function setText($text) { 
     $text = trim($text); 
     if(!empty($text)) { 
      $text = urlencode($text); 
      $en="http://translate.google.com/translate_tts?tl=en&q={$text}"; 
      $ro="http://translate.google.com/translate_tts?tl=ro&q={$text}"; 
      $fr="http://translate.google.com/translate_tts?tl=fr&q={$text}"; 
      $lang=$en; 
      $this->mp3data = file_get_contents($lang); 
      return $this->mp3data; 
     } else { return false; } 
    } 

    function saveToFile($filename) { 
     $filename = trim($filename); 
     if(!empty($filename)) { 
      return file_put_contents($filename,$this->mp3data); 
     } else { return false; } 
    } 
} 
?> 

: 파일 생성은 다음과 같은 코드가 포함됩니다

$language=$lang_en; 

$lang=$en; 
+0

아주 나쁜 방식으로 문제를 해결하려고하는 것 같습니다. –

답변

1

확실하지 무엇을 귀하의 질문은 여기에 있습니다. PHP 파일을 생성하는 것은 다른 종류의 파일을 생성하는 것과 다를 바 없습니다. 작성할 소스 코드의 문자열을 작성한 다음 간단한 file_put_contents('filename.php', $contents);이 트릭을 수행합니다.

: $en$lang_en은 어디에서 왔습니까? 또한, 이러한 매개 변수로 함수에 전달할 수 있습니까? 왜 그들은 하드 코딩되어야합니까?

$contents = ' 
<?php 
    // your PHP here 

'; 

file_put_contents('filename.php', $contents); 

는 또한 큰 텍스트 블록 heredocs에 읽을 할 수 있습니다,하지만 당신은 백 슬래시로 그들 모두를 탈출하지 않으면 불행하게도 사람들은 당신의 변수를 대체합니다.

+1

예,하지만 모든 코드를 $ contents에 넣을 수 있습니까? –

+3

코드는 제대로 작동하지만 3 가지 코드를 만들고 싶습니다. 첫 번째 코드는 $ language = $ lang_en; $ lang = $ en; 둘째 하나 : $ language = $ lang_ro; $ lang = $ ro; 셋째로 : $ language = $ lang_fr; $ lang = $ fr; –

+1

다른 문자열과 마찬가지로 사용합니다. $ contents = '