2015-08-14 74 views
-2

當我解碼使用評論「$ jsonString」字符串它工作得很好。 但使用curl後它不能正常工作,顯示爲空。php json_decode不能正常工作

請幫我。

if (isset($_POST['dkno'])) { 
    $dcktNo = $_POST['dkno']; 
    $url = 'http://ExampleStatus.php?dkno=' . $dcktNo; 
    $myvars = ''; 

    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $myvars); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    $jsonString = curl_exec($ch); 
    // $jsonString = '[{"branchname":"BHUBNESHWAR","consignee":"ICICI BANK LTD","currentstatus":"Delivered by : BHUBNESHWAR On - 25/07/2015 01:00","dlyflag":"Y","PODuploaded":"Not Uploaded"}]'; 

    if ($jsonString != '') { 
    $json = str_replace(array('[', ']'), '', $jsonString); 
    echo $json; 

    $obj = json_decode($json); 
     if (is_null($obj)) { 
      die("<br/>Invalid JSON, don't need to keep on working on it"); 
     } else { 
      $podStatus = $obj->PODuploaded; 
     } 
    } 
    } 
} 
+0

你是什麼意思它顯示爲空。什麼顯示空? –

+2

在調用json_decode之後調用json_last_error()和json_last_error_msg(),以便可以正確調試它。 –

+0

所以看起來問題是curl,而不是json_decode。但是你還沒有提供足夠的信息給任何人真正的幫助。祝你好運 – dan08

回答

0

curl後我用下面的概念從HTML頁面只獲取JSON數據。

1)fetchData.php

$url = 'http://DocketStatusApp.aspx?dkno=' . $dcktNo; 
$myvars = ''; 

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $myvars); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$jsonString = curl_exec($ch); 

// now get only value 
$dom = new DOMDocument(); 
$dom->loadHTML($jsonString); 
$thediv = $dom->getElementById('Label1'); 
echo $thediv->textContent; 

2)JSONprocess.php

if (isset($_POST['dkno'])) { 
    $dcktNo = $_POST['dkno']; 

    ob_start(); // begin collecting output 
    include_once 'fetchData.php'; 
    $result = ob_get_clean(); // Completed collecting output 

    // Now it will show & take only JSON Data from Div Tag 
    $json = str_replace(array('[', ']'), '', $result); 

    $obj = json_decode($json); 
    if (is_null($obj)) { 
    die("<br/>Invalid JSON, don't need to keep on working on it"); 
    } else { 
    $podStatus = $obj->PODuploaded; 
    } 
}