首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php curl函数问题

php curl函数问题
EN

Stack Overflow用户
提问于 2012-09-25 07:48:43
回答 1查看 132关注 0票数 0

我在我的代码中遇到了curl函数的麻烦。我的主机总是返回0,当我使用curl_error($ch)时,它返回‘无法到达主机’。我的主持人是ispeech,它应该不会有问题。这里有人能帮我吗?非常感谢!

iSpeech.php

代码语言:javascript
复制
   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

代码语言:javascript
复制
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();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-25 07:57:12

因此,为了省去ob buffer的麻烦,您可以替换

代码语言:javascript
复制
ob_start(); 

echocurl_exec($ch); 
$http_body = ob_get_contents(); 
ob_end_clean(); 

使用

代码语言:javascript
复制
$http_body = curl_exec($ch);

还会在您的示例中缺少的echo和curl_exec之间添加空格(尽管这应该抛出致命错误并停止执行-您有自己的错误处理程序吗?)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12574486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档