亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP實現微信公眾平臺音樂點播

2020-03-22 18:01:47
字體:
來源:轉載
供稿:網友

1.構造微信提供的XML格式的音樂消息
音樂的XML格式是這樣的:
復制代碼 代碼如下: xml
ToUserName ![CDATA[toUser]] /ToUserName
FromUserName ![CDATA[fromUser]] /FromUserName
CreateTime 12345678 /CreateTime
MsgType ![CDATA[music]] /MsgType
Music
Title ![CDATA[TITLE]] /Title
Description ![CDATA[DESCRIPTION]] /Description
MusicUrl ![CDATA[MUSIC_Url]] /MusicUrl
HQMusicUrl ![CDATA[HQ_MUSIC_Url]] /HQMusicUrl
ThumbMediaId ![CDATA[media_id]] /ThumbMediaId
/Music
/xml
我們寫個函數將數據轉換成這樣的格式,這里面主要的數據是MusicUrl和HQMusicUrl里面的數據,前者普通品質的音樂,后面HQ是高品質的,wifi下會優先播放HQ的。
復制代碼 代碼如下:private function transmitMusic($object, $musicArray, $flag = 0)
{
$itemTpl = " Music
Title ![CDATA[%s]] /Title
Description ![CDATA[%s]] /Description
MusicUrl ![CDATA[%s]] /MusicUrl
HQMusicUrl ![CDATA[%s]] /HQMusicUrl
/Music $item_str = sprintf($itemTpl, $musicArray['Title'], $musicArray['Description'], $musicArray['MusicUrl'], $musicArray['HQMusicUrl']); $textTpl = " xml
ToUserName ![CDATA[%s]] /ToUserName
FromUserName ![CDATA[%s]] /FromUserName
CreateTime %s /CreateTime
MsgType ![CDATA[music]] /MsgType
$item_str
FuncFlag %d /FuncFlag
/xml $resultStr = sprintf($textTpl, $object- FromUserName, $object- ToUserName, time(), $flag);
return $resultStr;
}2.構造參數$musicArray
復制代碼 代碼如下:$musicArray = array("Title"= $songstr, "Description"= "歌手:".$singerstr, "MusicUrl"= $this- getMusicUrl($this- getMusic($songstr,$singerstr)),"HQMusicUrl"= $this- getHQMusicUrl($this- getMusic($songstr,$singerstr)));
其中的$songstr和$singerstr變量是得從接受關注者的文本,你先提醒關注者按照一定的格式輸入文本,安然按這個固定格式截取出其中的歌曲歌手名。這個不難實現
我是這么寫的,其中的$keyword就是用戶輸入的內容,我要求的格式是這樣:格式為音樂+歌名 歌手;例如:音樂大約在冬季 齊秦,歌曲名稱和歌手中間用空格分隔。
復制代碼 代碼如下:
$aa = substr($keyword,strpos($keyword,"音樂")+strlen("音樂"));//一個漢字2個位置
$song = substr($aa,0,strpos($aa," "));
$singer = substr($aa,strpos($aa," "));
$songstr = trim((string)$song);
$singerstr = trim((string)$singer);
$musicArray = array("Title"= $songstr, "Description"= "歌手:".$singerstr, "MusicUrl"= $this- getMusicUrl($this- getMusic($songstr,$singerstr)),"HQMusicUrl"= $this- getHQMusicUrl($this- getMusic($songstr,$singerstr)));
$resultStr = $this- transmitMusic($object, $musicArray, $funcFlag);
具體字符串截取的函數用法可以去w3c上去查閱我就不細講了,主要是MusicUrl和HQMusicUrl內容的獲取。百度音樂接口 http://box.zhangmen.baidu.com/x?op = 12&count=1&title=TITLE $$AUTHOR$$$$
你在瀏覽器中輸入 http://box.zhangmen.baidu.com/x?op=12&count=1&title=大約在冬季$$齊秦$$$$觀察一下接口提供的XML數據的內容,主要是要encode和decode中的數據,這兩個數據是連在一起的,里面的CDATA中的內容取到xcode后面為止,即 &mid=0.74155984312224這些內容不要,我試過,加上這部分歌曲是放不出來的。拼接好的數據就是所要的MusicUrl和HQMusicUrl。
3.下面是重點,用PHP解析XML數據由于不懂html' target='_blank'>PHP語法,我花了許多時間復制代碼 代碼如下://音樂點播
function read_child($node)
{
global $musicstr ;
$children = $node- childNodes; //獲得$node的所有子節點
foreach($children as $e) //循環讀取每一個子節點
{
/*if($e- nodeType == XML_TEXT_NODE) //如果子節點為文本型則輸出
{
echo $e- nodeValue."---------"." BR
}*/
if($e- nodeType == XML_ELEMENT_NODE& nodeName=='encode') //如果子節點為文本型則輸出
{
$musicstr.=$e- nodeValue;
}
if($e- nodeType == XML_ELEMENT_NODE& nodeName=='decode') //如果子節點為文本型則輸出
{
$musicstr.=$e- nodeValue."|";
}
if($e- nodeType == XML_ELEMENT_NODE) //如果子節點為節點對象,則調用函數處理
{
$this- read_child($e); //注意這里的$this- 是因為的這些方法都是寫在微信的那個wechatCallbackapiTest類中的,所以得加才能調用到這些函數。
}
}
return $musicstr ;
}

function getMusic($song,$singer)
{
$dom = new DomDocument(); //創建 DOM對象
$dom- load('http://box.zhangmen.baidu.com/x?op=12&count=1&title='.$song.'$$'.$singer.'$$$$'); //讀取 XML文件
$root = $dom- documentElement; //獲取 XML數據的根
return $this- read_child($root);
//return $b; //調用 read_child函數讀取根對象
}function getMusicUrl($url)
{
//echo strpos($url,"&")."musciURL";
return substr($url,0,strpos($url,"
}
function getHQMusicUrl($url)
{
//echo strripos($url,"&")."HQmusicURL";
return substr($url,strripos($url,"http"),strripos($url,"&")-strripos($url,"http"));
}

我是用DOM做的,百度知道上問別人的。當然取XML數據中的MusicUrl還有更好的方法:
復制代碼 代碼如下:xml = file_get_contents('http://box.zhangmen.baidu.com/x?op=12&count=1&title=大約在冬季$$齊秦$$$$');
$result = simplexml_load_string($xml);
echo strval($result- url- encode);
echo strval($result- url- decode);
//輸出:http://zhangmenshiting.baidu.com/data2/music/64380827/Z2ZmbGVuaW9fn6NndK6ap5WXcGVpZpuaZJdrbGtqmm1mY2lolppnmpSXZWZubZyclmlmmZaXa3CTZJeZmW1ncGVll1qin5t1YWBmbGxsamxlaGVrbG9taTE$
64380827.mp3?xcode=140db3e8864c55164ad0bce2297ede73eaa48b2ded70843d&mid=0.38763446277961
最后實現成果截圖:


關鍵的內容和知識點都已經講完了,敘述能力拙計,可能講不太清楚,有什么不懂的歡迎評論,盡力回答。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品va在线看黑人动漫| 午夜精品三级视频福利| 亚洲欧美日韩中文在线| 丝袜美腿精品国产二区| 日韩中文字幕欧美| 国产一区二区精品丝袜| 亚洲免费中文字幕| 亚洲深夜福利在线| 亚洲欧美精品伊人久久| 国产经典一区二区| 国产亚洲a∨片在线观看| 一区二区三区国产在线观看| 午夜精品美女自拍福到在线| 日韩国产精品一区| 国产精品夜色7777狼人| 亚洲一区制服诱惑| 亚洲美女动态图120秒| 色狠狠av一区二区三区香蕉蜜桃| 亚洲成人久久一区| 国产精品综合网站| 亚洲国产精品成人va在线观看| 亚洲美女精品久久| 国产偷亚洲偷欧美偷精品| 国产欧美精品在线播放| 日本久久精品视频| 色一情一乱一区二区| 激情成人中文字幕| 久久久久久久爱| 91在线国产电影| 国产精品久久久| 国产精品精品久久久| 成人福利视频在线观看| 欧美性视频精品| 91手机视频在线观看| 日韩一区二区在线视频| 国产精品69久久久久| 日本精品久久中文字幕佐佐木| 欧美精品一本久久男人的天堂| 欧美黑人性视频| 国产精品电影久久久久电影网| 成人激情黄色网| 欧美黑人极品猛少妇色xxxxx| 精品久久久久久久久国产字幕| 国产精品日韩在线播放| 成人网址在线观看| 亚洲福利在线看| 国产精品都在这里| 久久久久久久爱| 国产精品高精视频免费| 亚洲аv电影天堂网| 在线精品高清中文字幕| 亚洲欧美国产精品久久久久久久| 久久天天躁夜夜躁狠狠躁2022| 欧美体内谢she精2性欧美| 成人黄色免费看| 国产视频久久久久久久| 亚洲男女自偷自拍图片另类| 黄色成人在线播放| 午夜精品一区二区三区在线| 精品久久国产精品| 国产区精品视频| 日韩av不卡在线| 亚洲加勒比久久88色综合| 亚洲成人av片在线观看| 中文字幕不卡在线视频极品| 日本91av在线播放| 国产精品视频地址| 91美女福利视频高清| 少妇久久久久久| 久久人91精品久久久久久不卡| 欧美性猛交视频| 亚洲视频在线看| 国产亚洲欧洲黄色| 亚洲一区二区三| 一区二区在线视频| 国产欧美日韩高清| 亚洲欧洲在线看| 日韩中文字幕网址| 欧美在线观看一区二区三区| 色悠悠久久久久| 日韩中文字幕在线精品| 日本亚洲精品在线观看| 欧美性猛交xxxx乱大交| 欧美精品激情在线观看| 亚洲a在线播放| 欧美老少做受xxxx高潮| 91国产在线精品| 亚洲自拍另类欧美丝袜| 日韩精品在线观| 久久资源免费视频| 国产精品日韩专区| 欧美成人免费视频| 日韩av大片免费看| 亚洲精品美女久久久久| 久久综合久久八八| 日韩av中文字幕在线免费观看| 日韩免费观看在线观看| 日韩中文字幕视频在线| 狠狠综合久久av一区二区小说| 国产精品mp4| 亚洲精品ady| 不卡毛片在线看| 亚洲一级黄色av| 精品久久久久久久久久久| 国产欧美一区二区三区久久| 欧美一级视频一区二区| 日韩精品视频在线免费观看| 久久久久999| 日韩美女免费线视频| 久久影视免费观看| 日韩成人在线视频| 日本高清不卡在线| 日韩在线观看免费全集电视剧网站| 91久久久久久久一区二区| 久久九九免费视频| 久久国产一区二区三区| 69av成年福利视频| 亚洲国产精品99久久| 欧美激情a∨在线视频播放| 日韩欧美国产高清91| 久久久久成人网| 97视频在线免费观看| 亚洲免费成人av电影| 欧美激情在线播放| 成人自拍性视频| 国产精品久久精品| 国产精品www色诱视频| 97视频在线观看视频免费视频| 国产99视频在线观看| 日韩中文字幕网站| 亚洲片国产一区一级在线观看| 国产欧美日韩免费| 国产一区二区三区精品久久久| 日韩中文字幕在线免费观看| 最新中文字幕亚洲| 国产一区二区三区在线| 欧美在线亚洲一区| 日日噜噜噜夜夜爽亚洲精品| 欧美午夜性色大片在线观看| 欧美专区中文字幕| 欧美裸体xxxxx| 91av在线精品| 色综合色综合网色综合| 亚洲精品大尺度| 亚洲精品之草原avav久久| 一本大道亚洲视频| 亚洲精品美女免费| 亚洲精品免费av| 91免费看片在线| 亚洲欧美日韩第一区| 国产精品露脸自拍| 国产日韩精品视频| 欧美日韩免费区域视频在线观看| 亚洲精品xxxx| 亚洲免费电影一区| 亚洲精品理论电影| 成人黄色短视频在线观看| 日韩av电影在线网| 亚洲精品av在线播放| 欧美激情二区三区| 4444欧美成人kkkk| 欧美福利视频网站| 69av在线播放| 亚洲成人免费在线视频|