2017-11-25 8 views
0

jsonテキストを返すWebサービスを呼び出していますが、開始時に ""¿ "というゴミで終わります。任意のヘルプやポインタが高く評価されました。私はカールのオプションで少し錆びています。これは私が使用していたいくつかの古いコードからです。このような作業をしてからしばらく時間がありました。json textで面白いキャラクターを取得する

私はブラウザを使ってWebサービスを呼び出すと、次のような素晴らしいjsonテキストが得られます。私はいくつかの値を削除していくつかの行を作成しました

{ "values": [[1511596680,3],[1511596740,2],[1511596800,0],[1511596860,6],[1511596920,0],[1511596980,0],[1511597040,0],[1511597100,0],[1511597160,0],[1511603220,0],[1511603280,0],[1511603340,0],[1511603400,0],[1511603460,0],[1511603520,0],[1511603580,0],[1511603640,0],[1511603700,0],[1511603760,0],[1511603820,0]]} 

私はラッパーとして機能するPHPページを介して呼び出すとき。私はそれの前に、PHPがjson_decodeを呼び出すことを妨げるいくつかの駄目を手に入れます。呼び出されたURLは、ブラウザで以前にWebサービスを呼び出すために使用したのとまったく同じです。

 { "値":[1511596680,3]、[1511596740,2]、[1511596800,0]、[1511596860,6]、[1511596920,0]、[1511596980,0] [1511597040,0]、[1511597100,0]、[1511597160,0]、[1511603220,0]、[1511603380,0]、[1511603400,0]、[1511603460,0]、[ [1511603520,0]、[1511603580,0]、[1511603640,0]、[1511603760,0]、[1511603860,0]、[1511603820,0]]

Webサービスを呼び出すためのPHPコードは次のとおりです。続く。 $ post_stringが空であるかどうかはわかりません。 URLは、フォーム内のURL文字列で渡されたのparamsで構成さ?のparam = valの& PARAM2 = val2のなど

$contenttype = 'application/json'; 

$headers = array(
     'Content-Type: ' . $contenttype, 
     'Content-Length: ' . strlen($post_string) /* this an empty string */ 
     ); 

/* dump of headers 

Array 
(
    [0] => Content-Type: application/json 
    [1] => Content-Length: 0 
) 
*/ 

$ch = curl_init($url); 

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); // this is get */ 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
if (is_array($headers) 
     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
$output = curl_exec($ch); // this contains the crap at the start */ 

答えて

0

おかげでは「変な文字は、」UTF-8 BOM、文字列は、それがUTF-8でエンコードされたことを知らせるEF BB BFで始まるによって引き起こされます。

あなたは、このようにBOMを削除することができます(jasonhaoによって、別のanswerで見つかった):私は12時間前にこれを自分で解決

//Remove UTF8 Bom 

function remove_utf8_bom($text) 
{ 
    $bom = pack('H*','EFBBBF'); 
    $text = preg_replace("/^$bom/", '', $text); 
    return $text; 
} 
+1

イェー。 –

関連する問題