Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 雅虎回答API不工作_Php_Api_Yahoo_Yahoo Api - Fatal编程技术网

Php 雅虎回答API不工作

Php 雅虎回答API不工作,php,api,yahoo,yahoo-api,Php,Api,Yahoo,Yahoo Api,我发现了一个我想要实现的PHPAPI示例,但它似乎不起作用 <?php /** * @package Yahoo Answer * @author The HungryCoder * @link http://hungrycoder.xenexbd.com/?p=953 * @version 1.0 * @license GPL, This class does not come with any expressed or impli

我发现了一个我想要实现的PHPAPI示例,但它似乎不起作用

    <?php
    /**
    * @package Yahoo Answer
    * @author The HungryCoder
    * @link http://hungrycoder.xenexbd.com/?p=953
    * @version 1.0
    * @license GPL, This class does not come with any expressed or implied warranties! Use at          your own risks!  
    */

    class yahooAnswer{
      var $appID;
      var $searchQuestionURL = 'http://answers.yahooapis.com/AnswersService/V1/questionSearch?';
      var $getQuestionURL = 'http://answers.yahooapis.com/AnswersService/V1/getQuestion?';

private $numResults = 10;
private $numStart = 0;

function  __construct($appid) {

    $this->appID=$appid;
}

function set_numResults($num_results){
    $this->numResults = $num_results;
}

/**
 * Search for questions for the given keywords. Returned results can be associative array or XML
 * @param <string> $kewyord
 * @return <string> Returns the results set either in XML format or associative array. 
 */

function search_questions($params){
    if(!is_array($params)){
        throw new Exception('The parameters must be an array!');
    }
    $defaults = array(
        'search_in'     =>  '',
        'category_name' =>  '',
        'date_range'    =>  '', //7, 7-30, 30-60, 60-90, more90
        'sort'          =>  'relevance', //relevance, date_desc, date_asc
        'type'          =>  'all',
        'output'        =>  'php',
        'results'       =>  $this->numResults,
        'start'         =>  $this->numStart,
        'region'        =>  'us',
        'appid'         =>  $this->appID,
    );
    $params = array_merge($defaults,$params);

    if(!$params['appid']){
        throw new Exception('APP ID is empty!', 404);
    }
    if(!$params['query']) {
        throw new Exception('Query is not set!', '404');
    }

    $req_params = $this->array2query_string($params);

    $url = $this->searchQuestionURL.$req_params;
    $results = $this->make_call($url);
    if($params['output']=='php'){
        $results = unserialize($results);
        return $results['Questions'];
    }
    return $results;

}


/**
 * Get all answers of a given question ID
 * @param <array> $params keys are: question_id, output, appid
 * @return <string> Returns all answers in expected format. default format is php array
 */

function get_question($params){

     if(!is_array($params)){
        throw new Exception('The parameter must be an array!');
    }
    $defaults = array(
        'question_id'   =>  '',
        'output'        =>  'php',
        'appid'         =>  $this->appID,
    );
    $params = array_merge($defaults,$params);



    if(!$params['appid']){
        throw new Exception('APP ID is empty!', 404);
    }
    if(!$params['question_id']) {
        throw new Exception('Question ID is not set!', '404');
    }


    $req_params = $this->array2query_string($params);


    $url = $this->getQuestionURL.$req_params;
    $results = $this->make_call($url);
    if($params['output']=='php'){
        $results = unserialize($results);
        return $results['Questions'][0];
    }
    return $results;
}



protected function make_call($url){
    if(function_exists('curl_init')){
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
        curl_setopt($ch, CURLOPT_TIMEOUT,60);

        $result = curl_exec($ch);
        curl_close($ch);
        return $result;
    } else if(function_exists('file_get_contents')) {
        return file_get_contents($url);
    } else {
        throw new Exception('No method available to contact remote server! We must need cURL or file_get_contents()!', '500');
    }
}

protected  function array2query_string($array){
    if(!is_array($array)) throw new Exception('Parameter must be an array', '500');
    $params ='';
    foreach($array as $key=>$val){
        $params .= "$key=$val&";
    }
    return $params;
}
}


$appid = "myId";

$params = array(
    'query'     =>      'keyword',   //enter your keyword here. this will be searched on yahoo     answer
    'results'   =>      10,         //number of questions it should return
    'type'      =>      'resolved',  //only resolved questiosn will be returned. other values can be all, open, undecided
    'output'    =>      'php',      //result will be PHP array. Other values can be xml, json,     rss
);
$query  = 'yoga'; //enter your keyword here to search for
$yn = new yahooAnswer($appid);
//search questions
try{
    $questions = $yn->search_questions($params);
} catch (Exception $e){
    echo ($e->getMessage());
}

?>

但是当我删除
$appid
定义时,我得到一条消息,appid是空的,当我为
$appid
输入appid时,我只得到一个空白页面,但我确实有一个appid,我直接从Yahoo复制它


有没有关于如何使其工作的建议?

人们不只是从控制台获得一个空白页面来运行它,以检查是否有任何输出。您可能需要进行一些调试,以查看它被卡住的地方。