2014-03-02 2 views
0

file_get_contents()를 사용하여이 데이터를 URL에서 가져 왔습니다.PHP 정규식 문자열 목록

[ 
{ 
    "abbr": "bigrapids", 
    "name": "Big Rapids", 
    "lat": 43.68757, 
    "lon": -85.48229, 
    "analytics": "UA-18102548-30" 
}, 
{ 
    "abbr": "bloomington", 
    "name": "Bloomington Transit", 
    "lat": 39.1654, 
    "lon": -86.52643, 
    "analytics": "UA-18102548-24" 
}, 

나는 정렬되지 않은 목록에 이름 (빅 래 피즈, 블루밍턴 교통)의 각을 가져온 다음 목록을 표시해야합니다. 나는 정규식 함수를 연구 해왔다. 그리고 나는 그것을 이해하는 것처럼 보이지 않는다. 어떤 도움을 주시면 감사하겠습니다.

+4

, 당신은 정규식을 필요가 없습니다. 'json_decode()'로 파싱한다. – nickb

답변

0

JSON string의 시작과 같습니다. 당신은 문자열의 나머지 부분을 가지고 가정하면, 당신은 json_decode()를 사용하여 구문 분석 할 수 있습니다 : 당신이 모든 이름이있을 것이다

$data = '...'; 
$parsed = json_decode($data); 
echo '<pre>', print_r($parsed, true), '</pre>'; 
0

live demo

당신이 디코드 JSON 데이터를 decode_json() 필요하고 다음 부분 배열과 배열을 가질 수 있습니다 .

는 다음과 같이하십시오 : 그것은 JSON을의

$json = <<<JSON 
[ 
{ 
    "abbr": "bigrapids", 
    "name": "Big Rapids", 
    "lat": 43.68757, 
    "lon": -85.48229, 
    "analytics": "UA-18102548-30" 
}, 
{ 
    "abbr": "bloomington", 
    "name": "Bloomington Transit", 
    "lat": 39.1654, 
    "lon": -86.52643, 
    "analytics": "UA-18102548-24" 
}] 
JSON; 

$json_d=json_decode($json,true); 
foreach($json_d as $arr){ 
echo $arr['name']." "; 
} 
0
<?php 

$json = <<<EOD 
[ 
{ 
    "abbr": "bigrapids", 
    "name": "Big Rapids", 
    "lat": 43.68757, 
    "lon": -85.48229, 
    "analytics": "UA-18102548-30" 
}, 
{ 
    "abbr": "bloomington", 
    "name": "Bloomington Transit", 
    "lat": 39.1654, 
    "lon": -86.52643, 
    "analytics": "UA-18102548-24" 
}] 
EOD; 

$array = json_decode($json, true); //make sure second parameter is true for a multidimensional array. 

echo '<ul>'; // start ul tag 
foreach($array as $value){ 
    echo '<li>' . $value['name'] . '</li>'; // for each value in array make a list item for it 
} 
echo '</ul>'; // close to ul list tag