失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > PHP下调用网易云音乐搜索API结果不正确

PHP下调用网易云音乐搜索API结果不正确

时间:2018-10-24 21:43:18

相关推荐

PHP下调用网易云音乐搜索API结果不正确

后端开发|php教程

php,网易云音乐

后端开发-php教程

大家好。

导航网html源码,Ubuntu编程左对齐,爬虫到mongodb论文,php.hub,辽宁seo搜索lzw

这是网易云音乐的搜索API。

gm2621源码,vscode开启错误提示,Ubuntu安装kmule,tomcat 如何分配线程,r爬虫 框架,php 上传文件覆盖,海南互联网推广seo,手机网站报名系统源码,模板世界lzw

当调用下面一段function,$word是英文时搜索结果正常,但中文的时候返回结果不正确。

网赚导航源码,vscode代码校验,虚拟机如何重新安装ubuntu,tomcat查找日志,sqlite如何存图片,xadmin 插件,最值得学习的前端框架,床帐上的小爬虫,php 接收 json,seo命令大全,仿购物网站目录,网页命名规范,化妆品官网模板下载lzw

为什么呢,请指教?

function music_search($word, $type=1){ $url = "/api/search/pc"; $post_data = array( s => $word, offset => , limit => 20, ype => $type, ); $referrer = "/"; $URL_Info = parse_url($url); $values = []; $result = \; $request = \; foreach ($post_data as $key => $value) { $values[] = "$key=" . urlencode($value); } $data_string = implode("&", $values); if (!isset($URL_Info["port"])) { $URL_Info["port"] = 80; } $request .= "POST " . $URL_Info["path"] . " HTTP/1.1\n"; $request .= "Host: " . $URL_Info["host"] . "\n"; $request .= "Referer: $referrer\n"; $request .= "Content-type: application/x-www-form-urlencoded\n"; $request .= "Content-length: " . strlen($data_string) . "\n"; $request .= "Connection: close\n"; $request .= "Cookie: " . "appver=1.5.0.75771;\n"; $request .= "\n"; $request .= $data_string . "\n"; $fp = fsockopen($URL_Info["host"], $URL_Info["port"]); fputs($fp, $request); $i = 1; while (!feof($fp)) { if ($i >= 15) { $result .= fgets($fp); } else { fgets($fp); $i++; } } fclose($fp); return $result;}

回复内容:

大家好。

这是网易云音乐的搜索API。

当调用下面一段function,$word是英文时搜索结果正常,但中文的时候返回结果不正确。

为什么呢,请指教?

function music_search($word, $type=1){ $url = "/api/search/pc"; $post_data = array( s => $word, offset => , limit => 20, ype => $type, ); $referrer = "/"; $URL_Info = parse_url($url); $values = []; $result = \; $request = \; foreach ($post_data as $key => $value) { $values[] = "$key=" . urlencode($value); } $data_string = implode("&", $values); if (!isset($URL_Info["port"])) { $URL_Info["port"] = 80; } $request .= "POST " . $URL_Info["path"] . " HTTP/1.1\n"; $request .= "Host: " . $URL_Info["host"] . "\n"; $request .= "Referer: $referrer\n"; $request .= "Content-type: application/x-www-form-urlencoded\n"; $request .= "Content-length: " . strlen($data_string) . "\n"; $request .= "Connection: close\n"; $request .= "Cookie: " . "appver=1.5.0.75771;\n"; $request .= "\n"; $request .= $data_string . "\n"; $fp = fsockopen($URL_Info["host"], $URL_Info["port"]); fputs($fp, $request); $i = 1; while (!feof($fp)) { if ($i >= 15) { $result .= fgets($fp); } else { fgets($fp); $i++; } } fclose($fp); return $result;}

是不是你用的编码不一样

不正确是什么意思?我测试了下没问题

phpprint_r(json_decode(music_search(十年),1));Array( [result] => Array ( [songCount] => 300 [songs] => Array( [0] => Array ( [starred] => [popularity] => 100 [starredNum] => 0 [playedNum] => 0 [dayPlays] => 0 [hearTime] => 0 [mp3Url] => http://m1./V6G5ER-inEZ_Oufxq9tmfA==/1153387697546241.mp3 [rtUrls] => Array() [name] => 十年 [id] => 66842 [position] => 4 [duration] => 206000 [status] => 1 [alias] => Array() [commentThreadId] => R_SO_4_66842 [copyFrom] => [album] => Array( [songs] => Array ( ) [name] => 黑白灰 [id] => 6548 [type] => 专辑 [size] => 10 [status] => 1 [description] =>[tags] =>[alias] => Array ( ) [company] => 英皇娱乐 [artist] => Array ( [img1v1Id] => 0 [name] => [id] => 0

估计人家的接口不能接受原生的中文字符的编码。建议在post传入的参数当中,利用urlencode进行转码,再是真正的请求。你可以试试

如果觉得《PHP下调用网易云音乐搜索API结果不正确》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。