いちばん失敗した人決定戦

現在我が家にて家の中でNamazuにてMP3サーバを構築しております。
具体的にNamazuではID3タグを元に検索用語を作り上げていると思うのですが、これと同じ事をPHP(PHP+MySQL)で作る事は可能でしょうか?

可能な場合はどのような方法でMP3サーバを構築できますでしょうか?

配信可能エリアは家の中だけです。

iTunesでいろいろとやろうとするとかなり重くなってしまうので…。

A 回答 (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がないので動くかどうかはわかりませんが参考にはなるかもしれません。
    • good
    • 0
この回答へのお礼

当初のPHPでやろうとしているよりこちらの方がすっきり、早く良かったです!

多分色々と難しく考えすぎていたのですが、k17sさんの上記Javascriptのおかげでうまくいきました!

THX!

お礼日時:2007/08/31 17:08

ANo.1の人です。



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

この回答への補足

お返事遅くなりました。
なるほど、
しかし、自分にはどのようにしてそのようなスクリプトを書いてよいのかわからないので、もしよろしければ参考としてサンプルがあればと思っています。

namazuにて通常検索を行う時はURLの欄にこのようなURLが出てきます。
[code]
http://localhost/scripts/namazu.cgi?idxname=JPN& …
[/code]

ご存知だと思いますが、一応、
[code]
idxname=JPN
[/code]
これは、インデックスがJPNというフォルダにあるということです。

[code]
query=um
[/code]
検索文字列を「um」としただけのときです。umとはalbumのumの部分です。

[code]
query=*um*
[/code]
「*um*」とすると、あいまい検索になっていろいろと出てきてくれるんですが。。

具体的にPHPにどうやって渡せばよいのかサンプルコードを書いてもらえないでしょうか?

補足日時:2007/08/30 14:01
    • good
    • 0

家庭内でMP3を共有するのであれば、サーバ上のMP3フォルダを


共有化したファイルサーバで間に合うでしょう。

こった方法で遠回りでも、PHPを使って見たいのであれば話は
変わりますが、何か必然性がありますか?

この回答への補足

ファイルサーバの音楽フォルダを共有設定にすれば一番簡単な方法ですが、LAN内のWEB操作を行いたいのです。

LAN接続されたPCより、WEB画面より曲を検索し、聴きたい曲を聴けるようになるのが一番よいのですがPHPで良いスクリプトが有れば知りたいと思っています。

補足日時:2007/08/28 22:20
    • good
    • 0

ちょっと情報が少なすぎてどいう状況なのか、どうしたいのかわからないのですが、文面通りに捉えれば



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

この回答への補足

基本的には文面どおりです。
PHPにて特定フォルダにあるMP3ファイル群のID3タグを吸出し、アルバム名、曲名、e.t.c.し、データベースや検索可能なファイルにするやり方などがまったくわからないのです。

もし、それら一連の動作を全て受け持ってくれるスクリプトがあればうれしいのですがなかなか見当たらないのが現状です。

補足日時:2007/08/28 22:17
    • good
    • 0

できると思います。


ただし作るにあたって「どのようなスキルや知識が必要で、その中で自分にはまだないものがなになのか」を明確にしておくと効率もよくなりますよ。

自分の場合はまず
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- …
音楽をストリーミング配信するには・・・
http://www.linux.or.jp/JF/JFdocs/MP3-HOWTO-11.html
等から調べて、ある程度作れるかな?って思ってから作るようにしてます。

この回答への補足

k17s様
丁重な回答ありがとうございます。

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

補足日時:2007/08/28 21:17
    • good
    • 0

MP3サーバって何ですか?


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

この回答への補足

>MP3サーバって何ですか?
MP3サーバ = 用は音楽配信サーバです。
ただ、それを家庭内でやっているだけです。


>配信とデータベースの関係がよく分かりません。
namazuにてインデックスを作成するときも中身はデータベースのようなものだと自分は勝手に思っています。

>曲のデータベースを作るだけなら、MP3からID3タグを抽出すればできますね。
まさしくその通りです。
ただ、自分ではPHPにてどのようにしてそのようなサーバを作り上げてよいのかわからないのでここで質問させていただきました。

LAN内からのアクセス方法はサーバ側にwwwサーバがあり、httpで各部屋にある部屋からそのLAN内アドレスでアクセスすれば音楽ファイルを検索し、聞く事が出来るように現在はnamazuで構築しなっています。
その機能をphpにてやりたいと思っているのです。

具体的になぜnamazuではいけないのかといいますと、namazuでは「あいまい検索」をするときは検索用語の前後に*アスタリスクをつけなくてはなりません。namazuでこの検索方法の改変をするためにはどのようにして良いのかわからず、昔phpでその方法を実績している無料のphpスクリプトなるものがあったからです。

補足日時:2007/08/28 19:48
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!