php curl函数问题
我的代码中有旋度函数的troble。我的CURLINFO\u HTTP\u代码在使用时始终返回0 curl_error($ch)返回“无法到达主机”。我的主机是ispeech,它应该不会有问题。这里有人能帮我吗?非常感谢 iSpeech.phpphp curl函数问题,php,ispeech,Php,Ispeech,我的代码中有旋度函数的troble。我的CURLINFO\u HTTP\u代码在使用时始终返回0 curl_error($ch)返回“无法到达主机”。我的主机是ispeech,它应该不会有问题。这里有人能帮我吗?非常感谢 iSpeech.php class iSpeechBase{ var $server; var $parameters = array("device-type"=>"php-SDK-0.3"); function s
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();
所以,省得用ob缓冲区胡闹,你可以替换它
ob_start();
echocurl_exec($ch);
$http_body = ob_get_contents();
ob_end_clean();
与
还将示例中缺少的echo和curl_exec之间的空格添加到函数makeRequest中的语句
$url=$this->server之后(尽管这会引发致命错误并停止执行-您有自己的错误处理程序吗?)。"/?" . http\u build\u查询($this->parameters)代码>,什么是变量转储($url)代码>显示?还要确保您的服务器正确解析了api.ispeech.org
,并且没有防火墙阻止curl请求。您需要在echo
和curl\u exec()之间留出一个空间
$http_body = curl_exec($ch);