2012-12-08 67 views
1

我試圖讓這個代碼工作,但它不會。請有人幫助我。這是第一個文件,tts.php:未定義的變量錯誤TTS PHP腳本

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

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

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

第二個文件,index.php文件:

<?php 
require "tts.php"; 
$tts = new TextToSpeech(); 
$tts->setText("Hello World!"); 
$tts->saveToFile("voice.mp3"); 
?> 

這是錯誤:The error

*我上運行的代碼本地主機

+1

要知道,谷歌不喜歡自動化請求翻譯服務,你就可能被堵塞或以其他方式遇到錯誤。 – Charles

+2

非常感謝你!如果是的話,我會使用代理。 –

回答

2

return $mp3data;應該return $this->mp3data;

+2

謝謝你! –

1
return $this->mp3data; 

代替

return $mp3data; 
+1

非常感謝你! –

0

你應該改變行

return $mp3data; 

return $this->mp3data; 
1

線27大概是這條線在setText()功能...

return $mp3data; 

,它應該是

return $this->mp3data; 
+1

非常感謝你! –