2017-01-20 1 views
0

작동하지 않습니다json_decode이 코드로 문자열

$url = 'https://www.xxxxxxx.com/api/v1/phone/?apikey=xxxxxxxxxx&id='.$id; 

$cURL = curl_init(); 

curl_setopt($cURL, CURLOPT_URL, $url); 
curl_setopt($cURL, CURLOPT_HTTPGET, true); 

curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json', 
    'Accept: application/json' 
)); 
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true); 
$result = curl_exec($cURL); 

curl_close($cURL); 

    echo $result;  
    var_dump ($result); 
    var_dump(json_decode($result, true)); 

내가 얻을 :

{ "전화": "0 811 228 338"}

문자열 (32) "{"전화 ":"X XXX XXX XXX "}"

NULL

왜 json_decode가 여기에서 작동하지 않는지 이해할 수 없습니까?

도와 주셔서 감사합니다.

답변

1

솔루션으로 일부 검증에 그것을 시도 유효한 응답이 UTF-8이 아닌 UTF-8 (SANS에 있다고했다 없습니다 BOM). 문자열의 시작 부분에 보이지 않는 caractere가 있음을 의미합니다 (U + FEFF).

솔루션 : ''{ "": "전화 X XXX XXX XXX"} "문자열 (32) '자신의 원래의 입력 문자열처럼

1

작은 정보로 나는 그 json 형성 문제를 믿습니다.

<?php 

    $json = '{"foo-bar": 12345}'; 

    $obj = json_decode($json); 
    print $obj->{'foo-bar'}; // 12345 

?> 

json으로 시세

http://php.net/manual/en/function.json-decode.php

이 하나 개 http://jsonlint.com/

+0

이 보이는 당신의 도움에 대한 $result = substr($result, 3);

감사하지 않습니다 JSON – GantTheWanderer

+0

응답 해 주셔서 감사합니다. 하지만 실제로, $ 결과는 { "telephone": "X XXX XXX XXX"} –

+0

당신이 거기에 가지고있는 NULL입니다. 거기에 없어야하거나 값이 NULL 인 키가 있어야합니다. –

관련 문제