• ベストアンサー

PHPでMP3サーバを作るには

現在我が家にて家の中でNamazuにてMP3サーバを構築しております。 具体的にNamazuではID3タグを元に検索用語を作り上げていると思うのですが、これと同じ事をPHP(PHP+MySQL)で作る事は可能でしょうか? 可能な場合はどのような方法でMP3サーバを構築できますでしょうか? 配信可能エリアは家の中だけです。 iTunesでいろいろとやろうとするとかなり重くなってしまうので…。

質問者が選んだベストアンサー

  • ベストアンサー
  • k17s
  • ベストアンサー率47% (9/19)
回答No.6

検索文字にアスタリスクを入れるだけの場合はPHPよりJavascriptの方が簡単かもしれないですね。 例 <html> <head> <script type="text/javascript"> function add(){ document.form1.query.value = "*" + document.form1.query.value + "*"; } </script> </head> <body> <form action="http://localhost/scripts/namazu.cgi" method="GET" name="form1" onsubmit="add();"> 検索文字列:<input type="text" name="query"> <input type="hidden" name="idxname" value="JPN"> <input type="submit" value="検索"> <form> </body> </html> 自分の環境にNamazuがないので動くかどうかはわかりませんが参考にはなるかもしれません。

smwithdm
質問者

お礼

当初のPHPでやろうとしているよりこちらの方がすっきり、早く良かったです! 多分色々と難しく考えすぎていたのですが、k17sさんの上記Javascriptのおかげでうまくいきました! THX!

その他の回答 (5)

回答No.5

ANo.1の人です。 ANo.3さんの言われるように > 検索文字列の前後にアスタリスクを事前につけてnamazuに渡す処理をはさんだ方がはるかに簡単でしょう 検索文字列を受け取って、それにアスタリスクをつけて、namazuのURLを呼び出せばいいですね。 これだとMySQLは要りません。 PHPで数行です。

smwithdm
質問者

補足

お返事遅くなりました。 なるほど、 しかし、自分にはどのようにしてそのようなスクリプトを書いてよいのかわからないので、もしよろしければ参考としてサンプルがあればと思っています。 namazuにて通常検索を行う時はURLの欄にこのようなURLが出てきます。 [code] http://localhost/scripts/namazu.cgi?idxname=JPN&query=um [/code] ご存知だと思いますが、一応、 [code] idxname=JPN [/code] これは、インデックスがJPNというフォルダにあるということです。 [code] query=um [/code] 検索文字列を「um」としただけのときです。umとはalbumのumの部分です。 [code] query=*um* [/code] 「*um*」とすると、あいまい検索になっていろいろと出てきてくれるんですが。。 具体的にPHPにどうやって渡せばよいのかサンプルコードを書いてもらえないでしょうか?

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.4

家庭内でMP3を共有するのであれば、サーバ上のMP3フォルダを 共有化したファイルサーバで間に合うでしょう。 こった方法で遠回りでも、PHPを使って見たいのであれば話は 変わりますが、何か必然性がありますか?

smwithdm
質問者

補足

ファイルサーバの音楽フォルダを共有設定にすれば一番簡単な方法ですが、LAN内のWEB操作を行いたいのです。 LAN接続されたPCより、WEB画面より曲を検索し、聴きたい曲を聴けるようになるのが一番よいのですがPHPで良いスクリプトが有れば知りたいと思っています。

  • kalkichi
  • ベストアンサー率64% (22/34)
回答No.3

ちょっと情報が少なすぎてどいう状況なのか、どうしたいのかわからないのですが、文面通りに捉えれば 1)特定ディレクトリのmp3からID3タグを抽出しMySQLに格納するPHPスクリプトを書く 2)指定の文字列でMySQLを検索し条件に合致するファイルを表示させるPHPスクリプトを書く この方法でMP3サーバー(?)が構築できるかと思います。 ただ単純にnamazuのあいまい検索にアスタリスクをつけるのが面倒。というだけでしたら、namazuのフロントエンドに何を使っているかわかりませんが検索文字列の前後にアスタリスクを事前につけてnamazuに渡す処理をはさんだ方がはるかに簡単でしょう。 またPECLにnamazuモジュールがあります。 http://pecl.php.net/package/namazu http://tag3.hp.infoseek.co.jp/php/php4_namazu.html

smwithdm
質問者

補足

基本的には文面どおりです。 PHPにて特定フォルダにあるMP3ファイル群のID3タグを吸出し、アルバム名、曲名、e.t.c.し、データベースや検索可能なファイルにするやり方などがまったくわからないのです。 もし、それら一連の動作を全て受け持ってくれるスクリプトがあればうれしいのですがなかなか見当たらないのが現状です。

  • k17s
  • ベストアンサー率47% (9/19)
回答No.2

できると思います。 ただし作るにあたって「どのようなスキルや知識が必要で、その中で自分にはまだないものがなになのか」を明確にしておくと効率もよくなりますよ。 自分の場合はまず PHPでID3タグの取得(?)するには・・・ http://php.benscom.com/manual/ja/ref.id3.php PHPからMYSQLを操作するには・・・ http://php.benscom.com/manual/ja/ref.mysql.php PHPでアップローダーを作るには・・・ http://www.pahoo.org/e-soul/webtech/php02/php02-19-01.shtm 音楽をストリーミング配信するには・・・ http://www.linux.or.jp/JF/JFdocs/MP3-HOWTO-11.html 等から調べて、ある程度作れるかな?って思ってから作るようにしてます。

smwithdm
質問者

補足

k17s様 丁重な回答ありがとうございます。 ご指摘のように自分はまだPHPに関してのスキルはあまりありません。 namazuに関してのスキルも同じようなものですが、上記参照リンクより色々と調べさせていただきますm(__)m

回答No.1

MP3サーバって何ですか? 曲のデータベースを作るだけなら、MP3からID3タグを抽出すればできますね。 配信とデータベースの関係がよく分かりません。

smwithdm
質問者

補足

>MP3サーバって何ですか? MP3サーバ = 用は音楽配信サーバです。 ただ、それを家庭内でやっているだけです。 >配信とデータベースの関係がよく分かりません。 namazuにてインデックスを作成するときも中身はデータベースのようなものだと自分は勝手に思っています。 >曲のデータベースを作るだけなら、MP3からID3タグを抽出すればできますね。 まさしくその通りです。 ただ、自分ではPHPにてどのようにしてそのようなサーバを作り上げてよいのかわからないのでここで質問させていただきました。 LAN内からのアクセス方法はサーバ側にwwwサーバがあり、httpで各部屋にある部屋からそのLAN内アドレスでアクセスすれば音楽ファイルを検索し、聞く事が出来るように現在はnamazuで構築しなっています。 その機能をphpにてやりたいと思っているのです。 具体的になぜnamazuではいけないのかといいますと、namazuでは「あいまい検索」をするときは検索用語の前後に*アスタリスクをつけなくてはなりません。namazuでこの検索方法の改変をするためにはどのようにして良いのかわからず、昔phpでその方法を実績している無料のphpスクリプトなるものがあったからです。

関連するQ&A