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

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

Jul 13, 2016 am 10:35 AM
php 微信 音楽


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]...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 Apr 06, 2025 am 12:03 AM

PHP8では、一致式は、式の値に基づいて異なる結果を返す新しい制御構造です。 1)Switchステートメントに似ていますが、実行ステートメントブロックの代わりに値を返します。 2)一致式の式は厳密に比較され、セキュリティが向上します。 3)スイッチステートメントの脱落の可能性を回避し、コードのシンプルさと読みやすさを向上させます。

クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? Apr 07, 2025 am 12:02 AM

PHPでは、予測不可能なトークンを使用して、CSRF攻撃を効果的に防ぐことができます。特定の方法には次のものが含まれます。1。フォームのCSRFトークンを生成および埋め込みます。 2.リクエストを処理するときにトークンの有効性を確認します。

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

H5とミニプログラムとアプリの違い H5とミニプログラムとアプリの違い Apr 06, 2025 am 10:42 AM

H5。ミニプログラムとアプリの主な違いは次のとおりです。技術アーキテクチャ:H5はWebテクノロジーに基づいており、ミニプログラムとアプリは独立したアプリケーションです。経験と機能:H5は軽量で使いやすく、機能が限られています。ミニプログラムは軽量で、インタラクティブが良好です。アプリは強力で、スムーズな経験があります。互換性:H5はクロスプラットフォーム互換性があり、アプレットとアプリはプラットフォームによって制限されています。開発コスト:H5には、開発コストが低く、中程度のミニプログラム、最高のアプリがあります。適用可能なシナリオ:H5は情報表示に適しており、アプレットは軽量アプリケーションに適しており、アプリは複雑な機能に適しています。

PHPで厳密なタイプ(declare(strict_types = 1);)を説明します。 PHPで厳密なタイプ(declare(strict_types = 1);)を説明します。 Apr 07, 2025 am 12:05 AM

PHPの厳格なタイプは、declare(strict_types = 1)を追加することで有効になります。ファイルの上部に。 1)関数パラメーターのタイプチェックと戻り値を強制して、暗黙の型変換を防ぎます。 2)厳格なタイプを使用すると、コードの信頼性と予測可能性を改善し、バグを減らし、保守性と読みやすさを向上させることができます。

どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) Apr 08, 2025 am 12:03 AM

PHPでは、最終的なキーワードを使用して、クラスが継承されないようにし、メソッドが上書きされます。 1)クラスを決勝としてマークする場合、クラスを継承することはできません。 2)メソッドを最終的にマークする場合、メソッドはサブクラスによって書き換えられません。最終的なキーワードを使用すると、コードの安定性とセキュリティが保証されます。

PHPの未来:適応と革新 PHPの未来:適応と革新 Apr 11, 2025 am 12:01 AM

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

PHP対Python:違いを理解します PHP対Python:違いを理解します Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

See all articles