完全なアクセス権を持たない Icecast サーバー (インターネット ラジオのストリーミング) を使用していますが、直接設定を変更することはできません。すべての Icecast サーバーには、ストリームに関する現在の情報 (リスナー、再生時間、ストリーム名、そして最も重要な現在再生中の曲のタイトル) を表示する自己生成 xml がありますが、最後の 5 トラックまたは 10 トラックを表示する方法はありません。
[余談ですが、この情報を取得する方法はいくつかありますが、正しく処理されていないか、情報が他の情報とごちゃまぜになっていて、簡単にアクセスできません。私の質問は別のことに関するものなので、この部分に集中しないでください。質問の背景を説明したかっただけです]
この xml ファイルを取得し、現在の曲のタイトルを抽出する PHP スクリプトが既にあります。この曲のタイトルを取得して配列に追加する別の PHP スクリプトを作成したいと考えています。このスクリプトは 30 秒ごとに実行され、現在の曲のタイトルが配列に追加されます。現在の曲のタイトルと配列の最初 (最新の曲は配列の「先頭」に追加されます) が一致する場合、項目は追加されません (曲が 30 秒を超えた結果としてタイトルが重複するのを避けるため)。アイテムの数が 11 に達すると、配列を 10 に保つために最後のアイテムが削除されます。
この配列を使用すると、いつでも呼び出すことができ、最新の 10 トラックの信頼できるソースを取得できます。
私の質問は、30 秒ごとに独自に実行され、別の PHP スクリプトから簡単にアクセスできる配列を PHP 経由で作成するにはどうすればよいですか? または、PHP スクリプトよりもこれを行うためのより良い方法はありますか? もしそうなら、詳しく教えてください。
MySQL がオプションであることは知っていますが、このようなものにはやり過ぎのように思えるので、それは避けたいと思います。また、MySQL の操作に慣れていません。
サーバー上でのスクリプトのスケジューリングに関する cron ジョブの実行についての議論を見てきました。これが最善の解決策かどうかはわかりませんが、もしそうなら、より詳細かつ具体的に教えていただけますか? 私はcronについて何も知りません。
編集:この配列は、相対的ではなく、すべてのユーザーに共通のものにしたいと思います。配列は、1 人のユーザーのブラウザー内に存在することはできませんが、サーバー上に存在する必要があります。