おそらく完成?

Kung-Tuneからの受信データの登録プログラム、昨夜から今日の改修でおそらく基本機能は完成したと思われる。あとは細かい気遣いだな。受信データを本当に再生したかで登録をしたりやめたり、とか、重複データを削除したりとか。
昨夜の見直しは文字列の扱い。ローカル環境でのテストでは問題なく日本語の文字列の分割ができていたのにサーバで動かすと日本語が正しく扱えない。php.iniの設定も見直した。ローカルの設定と比べても特に差はない。WindowsとLinuxの差はあるが。決め手は、mb_strlenだった。切り出すときの長さ取得に使っていたのだが、これを単にstrlenに変えたところ想定どおりに動くようになった。理由はわからない。ただし、すべての文字コードをUTF-8にしているからmb系の関数がいらないのかもしれないとか勝手に考えている。とりあえず動いたからよしとする。
今日の修正が、日付の計算。DBに登録する日付は「再生終了予定時刻」になっている。これは送信できるのがMacのシステム日付と曲の長さになっているからで、次の曲の開始時に前曲のデータを送信すればシステム日付でそのまま登録できるのだが、最後に再生した曲の情報を手動で送信しなければいけない。そのため現在は他の問題もあるが、再生開始時にデータを送信する設定にしてある。そのため開始時刻と曲の長さを送信してプログラムで計算しているのだが、計算時にmktimeするときの文字列分割にバグがあった。通常、午後から夜にかけて再生していたから表面化していなかったのだが、昨夜3:00AMに聴いていたら時刻計算でエラーになってしまった。ゼロサプレスとかスペースでの埋めがされないからだ。結局、区切り文字は、「/,:」に限られるからこれを使ってsplitで切り出してデータ化することで回避した。とりあえずは動いている。
通常再生時のデータは正しく受信・登録できているようだ。あとはイレギュラーデータとかイントロ流れただけで止めたデータを捨てる方法とかいろいろ練るところはあるのだが、とりあえず、今はデータの蓄積をすることが大事なので動かしながら考える。iPodのデータをなんとかしなければいけないな。

コメント