2017-11-25 1 views
0

json 텍스트를 반환하는 웹 서비스를 호출합니다. 시작 부분에 ""¿ "가 표시됩니다. 도움이나 조언을 주시면 감사하겠습니다. 나는 곱슬 거리는 옵션으로 약간 녹슬었고, 내가 사용했던 몇 가지 오래된 코드에서 이런 식으로 일한 이후로 약간의 시간이 걸렸다.json 텍스트에서 재미있는 문자를 얻으십시오.

나는 브라우저를 통해 웹 서비스를 호출 할 때 다음과 같이 멋진 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 페이지를 통해 호출합니다. 그것 앞에 json_decode를 호출하는 PHP를 막고있는 약간의 쓰레기가 있습니다. 호출 된 URL은 이전에 브라우저에서 웹 서비스를 호출하는 데 사용 된 URL과 동일합니다.

 { "값"[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], [1511603760,0], [1511603860,0], [1511603820,0]]

웹 서비스를 호출하는 PHP 코드는 as 다음과 같습니다. 빈 $ post_string이 문제인지 잘 모르겠습니다. URL은 형태의 URL 문자열에 전달 PARAMS 구성? PARAM = 발 & PARAM2 = val2만큼 등

내가 바이트 순서 표시를 remive 다음을 삽입했다
$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로 인코딩 된 것을 신호 EF BB BF로 시작을 의미 UTF-8 BOM에 의해 발생합니다.

이 같은 BOM 제거 할 수 있습니다 (jasonhao에 의해, 다른 answer에서 발견을) :

//Remove UTF8 Bom 

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

예치 내가 12 시간 전이 나 자신을 해결했다. –

관련 문제