ホームページ > バックエンド開発 > PHPチュートリアル > PHP は WeChat パブリック プラットフォームにミュージック オンデマンドを実装します_PHP チュートリアル

PHP は WeChat パブリック プラットフォームにミュージック オンデマンドを実装します_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:35:29
オリジナル
1076 人が閲覧しました


1. WeChat が提供する XML 形式で音楽メッセージを構築します
音楽の XML 形式は次のとおりです:

コードをコピーします コードは次のとおりです:
ToUserName>

12345678
>
<タイトル<<説明> ;![CDATA [DESCRIPTION]]>

< /HQMusicUrl>
ここでの主なデータは MusicUrl と HQMusicUrl のデータで、前者は通常の品質の音楽で、後者の HQ は Wi-Fi 環境下で最初に再生されます。

コードをコピーします 如 コードは次のとおりです:

Priving function transfermusic ($ Object, $ musicarray, $ Flag = 0) {
$ itEmtpl = "& lt;
& lt; title & gt ; & lt;! [cdata [ %s]]>

"; $item_str = sprintf($itemTpl, $musicArray['タイトル'], $musicArray['説明'], $musicArray['MusicUrl'], $musicArray['HQMusicUrl']); $ $ texttpl = "&lt; xml&gt;
" "tousername&gt;&lt; 、、、、、、、、、、、、、、、、t;%d
";

$resultStr = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $flag);
return $resultStr;
}


2. 構築パラメータ $musicArray



コードをコピー

コードは次のとおりです:

$musicArray = array("Title"=>$songstr, "Description"=>"Singer:". $singerstr, "MusicUrl"=>$this->getMusicUrl($this->getMusic($songstr,$singerstr)),"HQMusicUrl"=>$this->getHQMusicUrl($this->getMusic ($songstr ,$singerstr)));

$songstr 変数と $singerstr 変数は、フォロワーのテキストから取得する必要があります。まず、フォロワーに特定の形式に従ってテキストを入力するよう通知し、An Ran が名前をインターセプトします。この固定フォーマットに従って歌の歌手の。これを実現するのは難しいことではありません

私は次のように書きました。$keyword はユーザーが入力したコンテンツです。形式は音楽 + 曲のタイトルと歌手です。たとえば、音楽は Qi Qin に関するものです。冬は曲名と歌手が真ん中にありスペースで区切ります。

コードをコピーします

コードは次のとおりです:


$aa = substr($keyword,strpos($keyword,"Music")+strlen("Music"));//1 つの漢字には 2 つの位置があります
$song = substr($aa,0,strpos($ aa ," "));
$singer = substr($aa,strpos($aa," "));
$songstr = トリム((文字列)$song);
$singerstr = トリム((文字列)$singer ) ;
$musicArray = array("タイトル"=>$songstr, "説明"=>"歌手:".$singerstr, "MusicUrl"=>$this->getMusicUrl($this->getMusic ( $songstr,$singerstr)),"HQMusicUrl"=>$this->getHQMusicUrl($this->getMusic($songstr,$singerstr))); , $musicArray, $funcFlag);
文字列インターセプトの具体的な関数の使用法は w3c にありますが、ここでは詳しく説明しません。主なことは MusicUrl と HQMusicUrl の内容を取得することです。 Baidu 音楽インターフェイス http://box.zhangmen.baidu.com/x?op = 12&count=1&title=TITLE $$AUTHOR$$$$ ブラウザに http://box.zhangmen.baidu.com/ と入力します x ?op=12&count=1&title=冬について $$Qiqin$$$$ インターフェースによって提供される XML データの内容を観察します。主に、エンコードとデコードのデータが結合されています。CDATA の内容が取得されます。 xcode の最後、つまり &mid=0.74155984312224 まで。これらの内容は必要ありません。試してみましたが、曲のこの部分は再生できません。結合されたデータは、必須の MusicUrl と HQMusicUrl です。


3. 以下が重要なポイントです。PHP を使用して XML データを解析します

PHPの構文が分からないので、かなり時間がかかりました

コードをコピー

コードは次のとおりです://ミュージック・オン・デマンドfunction read_child($node)
{
global $musicstr ;
$children = $node->childNodes; //Get all $node の子 Node
foreach($children as $e) //各子ノードを読み取るループ
{
/*if($e->nodeType == XML_TEXT_NODE) // 子ノードがテキスト型の場合、出力
$ e-& gt; "" & lt; br & gt;
}*/ if($ e-&gt; nodetype == xml_element_node&&gt; nodename == 'encode')//子ノードがテキストタイプの場合、出力
'' decode ')//子ノードがテキストタイプの場合、出力$ MusicStr。= $ e- gt; gt; なので、これらの関数を呼び出すために追加する必要があります。
}
}
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);
//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で作りました、Baiduは知っていて他の人に聞きました。もちろん、XML データ内の MusicUrl を取得するより良い方法があります:



コードをコピーします

コードは次のとおりです:

xml = file_get_contents('http://box.zhangmen.baidu.com/x?op=12&count=1&title=冬について$$Qiqin$$$$');
$result = simplexml_load_string($xml); strval($result->url->encode);
echo strval($result->url->decode);
//出力: http://zhangmenshiting.baidu.com/data2/music /64380827 /Z2ZmbGVuaW9fn6NndK6ap5WXcGVpZpuaZJdrbGtqmm1mY2lolppnmpSXZWZubZyclmlmmZaXa3CTZJeZmW1ncGVll1qin5t1YWBmbGxsamxlaGVrbG9taTE$
64380827.mp3? 864c55164ad0bce2297ede73eaa48b2ded70843d&mid=0.38763446277961

最終的な成果のスクリーンショット:


PHP は WeChat パブリック プラットフォームにミュージック オンデマンドを実装します_PHP チュートリアル
重要な内容や知識のポイントについては説明しましたが、私の話術が不十分で、理解できないことがあれば、コメントして頑張って答えてください。

http://www.bkjia.com/PHPjc/743928.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/743928.html技術記事 1. WeChat が提供する XML 形式で音楽メッセージを作成します。 音楽の XML 形式は次のとおりです。 次のようにコードをコピーします。 xml ToUserName![CDATA[toUser]]/ToUserName FromUserName![CDATA[fromUser]...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート