2016-05-31 2 views
0

그래서 약간의 의아해하고 누군가 나를 도와 줄 수 있는지 궁금합니다. 나는이 파일의 내용을 URL로 반환 해 grep 할 필요가있다. 내가 돌려받을 것은 :URL에서 가져온 PHP grep 파일 내용

{"level":30,"pic":"http:\/\/ddragon.leagueoflegends.com\/cdn\/5.23.1\/img\/profileicon\/716.png","wins":5,"games":{"1":{"champ":412,"outcome":false,"kills":3,"deaths":13,"assists":15},"2":{"champ":53,"outcome":false,"kills":1,"deaths":11,"assists":5},"3":{"champ":91,"outcome":false,"kills":4,"deaths":10,"assists":2},"4":{"champ":67,"outcome":false,"kills":2,"deaths":6,"assists":4}}} 

무엇 내가 grep을 할 것은 다음없이 다음 챔피언 값 (이상한/없음) profileicon716.png, 먼저 "30"이 경우 수준에서 값 ':' 첫 번째 게임의 경우 첫 번째 게임의 승리, 각 게임의 결과 (살인없이 참 또는 거짓), 살인, 사망 및 도움 (단지 가치)이 있습니다 (총 4 개가 있음). 각 값을 가져 와서 각 게임에 종속 된 문자열 (즉, $ killsgames1 = 3)에 할당해야합니다. 즉, killsgames1 = 3

이렇게 어려운 이유를 알 수 있듯이 도움을 청합니다. 나는 보통 이러한 문제를 스스로 해결하기보다는 숟가락을 먹이로 먹고 싶지만 이것은 나에게 너무 기분이 좋다.

+1

그것은, [json_decode]를 사용 당신이 생각하는 것보다 실제로 훨씬 간단 (http://php.net :

또한, 필요는 같은 사용 가능한 형식으로 이미, 다른 변수에 할당 없습니다 /manual/en/function.json-decode.php) 여러분은 꽤 잘 갈 것입니다. – JimL

답변

1

grep으로 또는 구문 분석 할 필요가 없습니다, 그것은 JSON의 :

$array = json_decode($string, true); 

echo $array['level']; 
echo basename($array['pic']); 

foreach($array['games'] as $game) { 
    echo $game['champ']; 
    //etc... 
} 

이 구조를 볼 수있는 print_r($array);를 수행합니다.

$array['games'][0]['kills'] 
$array['games'][1]['kills'] 
$array['games'][2]['kills'] 
//etc... 
+0

정말 고마워요! 배열에서 값을 검색하고 다른 값을 반환하는 경우는 무엇입니까? 즉, 3 개의 살인을 검색하고 결과를 반환합니다 (이 경우 게임이 손실되면 거짓이됩니다). – user3258734

+0

다른 질문으로 게시하고 무슨 뜻인지 모르겠다. – AbraCadaver