2012-12-09 45 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); 

您可能还需要在here文档为大段的文字读了,但不幸的是那些除非你逃脱他们都用反斜杠将取代你的变量。

+1

是的,但我怎么能把所有的代码在$内容? –

+3

该代码工作正常,但我想使3个不同的: 第一个与: $ language = $ lang_en; $ lang = $ en;第二个: $ language = $ lang_ro; $ lang = $ ro; 第三位: $ language = $ lang_fr; $ lang = $ fr; –

+1

您可以像其他任何字符串一样进行操作。 $ contents ='<?php ...';检查我的编辑我现在就做出来。 –