2016-10-11 11 views
0

imはプレーヤーの詳細を取得するために使用するつもりです。一部の名前には特殊文字が使用されています。PHPファイル_get_contents特殊文字

名前Bausí

URL:?HTTPS/eu.api.battle.net/WOW /キャラクター/ブラックロック/Bausíフィールド=統計&ロケール=表すen_GB & APIキー= xxxは

私はfile_get_contensを使用する場合( )応答がありません。

特殊文字のない名前は完全に機能します。私はすでにrawurlencode()とurlencode()を使っていました。両方とも動作していません。私に何ができる? 私はurlencode()とrawurlencode()について何かを読んでいますが、それはサーバーによって異なります。

ありがとうChzn

+0

ほとんどの場合、ユニコード文字をエンコードする必要があります。 –

+0

このスレッドからの回答をお試しください:http://stackoverflow.com/questions/2236668/file-get-contents-breaks-up-utf-8-characters –

+0

私は$ charname = mb_convert_encoding( "Bausí" 、 "HTML-ENTITIES"、 "UTF-8");それをURLに挿入します。まだ動作していません – chzn

答えて

0

よく分からないことが分かります。それは私にエラーをスロー

   $charname = mb_convert_encoding("Bausí", "HTML-ENTITIES", "UTF-8"); 
       $realm = "Blackrock"; 
       $_SESSION["region"] = "eu"; 
       $opts = array('https' => array('header' => 'Accept-Charset: UTF-8, *;q=0')); 
       $context = stream_context_create($opts); 

       $char_params = array(
        'fields' => "statistics", 
        'locale' => "en_GB", 
        'apikey' => "my_api_key" 
       ); 

       $char_url = "https://".$_SESSION['region'].".api.battle.net/wow/character/".str_replace("'","",$realm)."/".$charname."?".http_build_query($char_params); 

       if (!$json_char_o = file_get_contents($char_url, false, $context)) { 
         $error = error_get_last(); 
         echo "HTTPs request failed. Error was: " . $error['message']; 
       }else{ 
         echo $json_char_decoded = json_decode($json_char_o); 

       } 

HTTP要求が失敗しました。エラー:file_get_contents(https://eu.api.battle.net/wow/character/Blackrock/Bausí?fields=statistics&locale=en_GB&apikey=my_api_key):ストリームのオープンに失敗しました:HTTP要求に失敗しました! HTTP/1.1 404が見つかりません。

応答はjsonオブジェクトである必要があります。

リンクを手動で開くと完全に動作します。なにが問題ですか? :/