2017-07-01 164 views
1

我可以從一個網站使用CURL獲取數據。 我想將這些數據轉換爲json。Php捲曲到Json

我的代碼:

<?php 
function Curlconnect($start,$end,$website) { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $website); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $website = curl_exec($ch); 
    preg_match_all('@'.$start.'(.*?)'.$end.'@si',$website,$ver); 
    return $ver[1]; 
    curl_close($ch); 
} 

function nt($start,$bit,$data,$a) { 
    preg_match_all('@'.$start.'(.*?)'.$bit.'@si',$data,$ver); 
    return $ver[1]; 
} 

$url = 'http://www.url.com'; 
$getdata = Curlconnect('<h4','h4>',$url); 
for ($a=0; $a<count($getdata); $a++) { 
    $printdata = nt('>','</',$getdata[$a],$a); 
    echo $printdata[0]. '<br />'; 
} 
?> 

輸出:

1 
27 
32 
66 
94 

我想這個數據轉換成JSON這樣的:

{ 
     "data":{ 
      "numbers": 
       [ 
         "1", 
         "27", 
         "32", 
         "66", 
         "94", 
       ] 
     } 
} 

我該怎麼辦呢?

非常感謝。

+1

$ numbersData = []; on foreach $ numbersData [] = $ getdata [$ a]; –

+1

finally:echo json_encode(['data'=> ['numbers'=> $ numbersData]]); –

+0

嗨@SebastiaoMarcos非常感謝。 – Johny

回答

1

請試試這個

$url = 'http://www.url.com'; 
$getdata = Curlconnect('<h4','h4>',$url); 
$jsonData = ["data"]; 
$jsonData["numbers"] = []; 
for ($a=0; $a<count($getdata); $a++) { 
    $printdata = nt('>','</',$getdata[$a],$a); 
    $jsonData["numbers"][] = $printdata[0]; 
} 

echo json_encode($jsonData); 
+0

嗨@DollyAswin 非常感謝,這是完美的。 – Johny