我在我的代码中遇到了curl函数的麻烦。我的主机总是返回0,当我使用curl_error($ch)时,它返回‘无法到达主机’。我的主持人是ispeech,它应该不会有问题。这里有人能帮我吗?非常感谢!
iSpeech.php
class iSpeechBase{
var $server;
var $parameters = array("device-type"=>"php-SDK-0.3");
function setParameter($parameter, $value){
if ($parameter == "server")
$this->server = $value;
else
$this->parameters["$parameter"] = $value;
}
function makeRequest(){
$ch = curl_init();
$url=$this->server . "/?" . http_build_query($this->parameters);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
ob_start();
echocurl_exec($ch);
$http_body = ob_get_contents();
ob_end_clean();
echo curl_getinfo($ch, CURLINFO_HTTP_CODE); //return 0
echo curl_error($ch); //return Could not reach host.
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) != 200)
if ($this->parameters["action"] == "convert")
return array("error" => $http_body);
return $http_body;
}
}synthesis-demo.php
require_once('ispeech.php');
$SpeechSynthesizer = new SpeechSynthesizer();
$SpeechSynthesizer->setParameter("server", "http://api.ispeech.org/api/rest");
$SpeechSynthesizer->setParameter("apikey", "myapikey");
$SpeechSynthesizer->setParameter("text", "yes");
$SpeechSynthesizer->setParameter("format", "wav");
$SpeechSynthesizer->setParameter("voice", "usenglishfemale");
$SpeechSynthesizer->setParameter("output", "rest");
$result = $SpeechSynthesizer->makeRequest();发布于 2012-09-25 07:57:12
因此,为了省去ob buffer的麻烦,您可以替换
ob_start();
echocurl_exec($ch);
$http_body = ob_get_contents();
ob_end_clean(); 使用
$http_body = curl_exec($ch);还会在您的示例中缺少的echo和curl_exec之间添加空格(尽管这应该抛出致命错误并停止执行-您有自己的错误处理程序吗?)
https://stackoverflow.com/questions/12574486
复制相似问题