2017-06-21 17 views
1

IBM Watson Natural Language Understandingの小文字は、POST(PHPで受信)で英語のみのフレーズを取得します。 私はPOSTフランス語、スペイン語またはポルトガル語は動作しません。IBM Watson Natural Language Understandingは英語のフレーズのみを取得します

マイコード:

のinclude_once( 'JSON.php'); $ json = new Services_JSON();

// Getパラメータ $ protocol = utf8_decode(($ _ GET ['protocol'])?$ _GET ['protocol']:$ _POST ['protocol']); $ report = utf8_decode(($ _GET ['report'])?$ _GET ['report']:$ _POST ['report']);$ class = utf8_decode(($ _GET ['classified'])?$ _GET ['classified']:$ _POST ['classified']);

//コールワトソン

$report = strtoupper($report);   

    $username = 'xxxxxxx'; 
    $password = 'XXXXX'; 
    $url = 'https://gateway.watsonplatform.net/natural-language-understanding/api/v1/analyze?version=2017-02-27&text=Helloethics&features=entities,sentiment,keywords'; 

    // Set post arguments for call 
    $post_args = array(
     'text' => $report 
    ); 

    // Set header arguments for call 
    $header_args = array(
     'Content-Type: text/plain', 
     'Accept: application/json' 
    ); 

    // Set options for REST call via curl 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($curl, CURLOPT_POST, true); 
    curl_setopt($curl, CURLOPT_USERPWD, "xxxxxxxx:XXXXXXX");   
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header_args); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $post_args); 

    $status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); 

    // Actual REST call via curl and cleanup (closing) of curl call 
    $result = curl_exec($curl); 
    print_r($result); 
    curl_close($curl); 

POST/GETはprasheが英語の場合のみ動作しますが、他の言語ワトソンリターン:

POSTがprasheが英語の場合のみ動作しますが、他の言語ワトソンリターン:

{ "言語": "PT"、 "エンティティ":[]、 "警告": "キーワード:内部サーバーエラー"、 "感情:内部サーバーエラー"]}

しかし、ローカル変数、OKを使用すると、動作します。私を助けてください!ありがとうございました!

答えて

0

解決済み!

インライン $ report = utf8_decode($ _GET ['report'])?$ _GET ['report']:$ _POST ['report']);

utf8_decodeを削除するだけです。

作品!