如题,我想解析网易云音乐歌单内容,但是php不熟这段json又太复杂实在是没有解析出来...
地址:http://music.163.com/api/playlist/detail?id=92664101
我想输出nickname和avatarUrl,循环输出歌单里歌的mp3Url,name还有artist里面的picUrl
<?php
$url = 'http://music.163.com/api/playlist/detail?id=92664101';
$json = file_get_contents($url);
$obj = json_decode($json);
if (! is_object($obj) || $obj->code != 200) {
exit('fetch data fail');
}
$result = $obj->result;
?>
<html>
<head lang="zh-hans">
<meta charset="UTF-8">
<title>netease JSON parse</title>
<meta name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css"
rel="stylesheet">
<link href="http://www.bootcss.com/p/flat-ui/css/flat-ui.css"
rel="stylesheet">
<link rel="shortcut icon" href="http://a.tbcdn.cn/s/kissy/favicon.ico"
type="image/x-icon">
</head>
<body>
<div class="container">
<h1 class="page-header"><?php echo $result->creator->nickname;?><small>avatarUrl:<?php echo $result->creator->avatarUrl;?></small>
</h1>
<div class="row">
<?php if(count($result->tracks)){?>
<table class="table table-striped">
<thead>
<tr>
<th>#</th>
<th>歌曲标题</th>
<th>时长</th>
<th>歌手</th>
<th>mp3Url</th>
<th>picUrl</th>
</tr>
</thead>
<tbody>
<?php foreach($result->tracks as $key=>$row){?>
<tr>
<th><?php echo $key;?></th>
<th><?php echo $row->name;?></th>
<th><?php echo $row->duration/1000;?>s</th>
<th><?php echo $row->artists[0]->name;?></th>
<th><a href="<?php echo $row->mp3Url;?>" target="_blank">播放链接</a></th>
<th><a href="<?php echo $row->album->picUrl;?>" target="_blank">picUrl</a></th>
</tr>
<?php }?>
</tbody>
</table>
<?php }?>
</div>
</div>
</body>
</html>
php 解析 json 使用 json_decode() 函数即可
http://www.php.net/manual/zh/function.json-decode.php
$json = json_decode(file_get_contens(http://music.163.com/api/playlist/detail?id=92664101),true);
echo $json['result']['creator']['nickname'];//fafatears
echo $json['result']['creator']['avatarUrl'];//http://p4.music.126.net/8H54LZSIvkMK8tqCJZnbTw==/3294136843838189.jpg
$mp3 = [];
$pic = [];
foreach($json['result']['tracks'] as $value){
$mp3[] = $value['mp3Url'];
foreach($value['artists'] as $v) {
$pic[] = $v['picUrl'];
}
}
var_dump($mp3);var_dump($pic);