ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用してシンプルなオンライン音楽ダウンロードおよび再生システムを実装する方法

PHP を使用してシンプルなオンライン音楽ダウンロードおよび再生システムを実装する方法

PHPz
PHPzオリジナル
2023-09-25 12:41:021377ブラウズ

PHP を使用してシンプルなオンライン音楽ダウンロードおよび再生システムを実装する方法

PHP を使用して簡単なオンライン音楽ダウンロードおよび再生システムを実装する方法

ネットワーク技術が発展し続ける今日、音楽は人々の生活に欠かせないものになっています。オンライン音楽ダウンロードおよび再生システムの需要も高まっています。この記事では、PHP を使用して簡単なオンライン音楽ダウンロードおよび再生システムを作成する方法を紹介し、具体的なコード例を示します。

1. 環境とデータベースの構築

まず、PHP を実行し、音楽ファイルの情報を保存するデータベースを作成するためのサーバー環境が必要です。 XAMPP または他の同様のツールを使用して PHP 実行環境をセットアップし、MySQL を使用して「music」という名前のデータベースを作成します。 「music」データベースに「songs」という名前のテーブルを作成します。テーブルの構造は次のとおりです:

CREATE TABLE `songs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `artist` varchar(255) NOT NULL,
  `file` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2. 音楽ファイルをアップロードします

システムでは、ユーザーは簡単なフォームを使用して音楽ファイルをアップロードし、ファイルをサーバー上の指定されたディレクトリに保存します。 「upload.php」という名前のファイルを作成し、次のコードを追加します。

<?php
if(isset($_POST['submit'])){
    $name = $_POST['name'];
    $artist = $_POST['artist'];
    $file = $_FILES['file']['name'];
    $targetDir = "./uploads/";
    $targetFile = $targetDir . basename($file);
    
    // 保存文件
    if(move_uploaded_file($_FILES['file']['tmp_name'], $targetFile)){
        // 将文件信息保存到数据库
        $conn = new mysqli('localhost', 'root', '', 'music');
        $sql = "INSERT INTO songs (name, artist, file) VALUES ('$name', '$artist', '$file')";
        $conn->query($sql);
        $conn->close();
        echo "上传成功!";
    }else{
        echo "上传失败!";
    }
}
?>
<form method="POST" action="" enctype="multipart/form-data">
    歌曲名:<input type="text" name="name" required><br>
    歌手:<input type="text" name="artist" required><br>
    音乐文件:<input type="file" name="file" required><br>
    <input type="submit" name="submit" value="上传">
</form>

このコードは、ユーザーが送信した音楽ファイルを受信し、サーバー上の指定されたディレクトリの「uploads」フォルダーに保存します。同時に、音楽ファイルの名前、アーティスト、ファイル名がデータベースに保存されます。

3. 音楽リストの表示

システムでは、アップロードされた音楽リストを表示できます。 「index.php」という名前のファイルを作成し、次のコードを追加します。

<?php
$conn = new mysqli('localhost', 'root', '', 'music');
$sql = "SELECT * FROM songs";
$result = $conn->query($sql);
?>

<table>
    <tr>
        <th>歌曲名</th>
        <th>歌手</th>
        <th>操作</th>
    </tr>
    <?php while($row = $result->fetch_assoc()): ?>
    <tr>
        <td><?php echo $row['name']; ?></td>
        <td><?php echo $row['artist']; ?></td>
        <td>
            <a href="play.php?id=<?php echo $row['id']; ?>">播放</a>
            <a href="download.php?file=<?php echo $row['file']; ?>">下载</a>
        </td>
    </tr>
    <?php endwhile; ?>
</table>

上記のコードでは、データベース内の「song」テーブルがクエリされ、音楽ファイルの名前、歌手、名前が取得されます。音楽ファイルのファイルをループ文で追加し、アクションリンクを表形式で表示します。

4. 音楽を再生する

ユーザーが音楽リストの「再生」リンクをクリックすると、音楽を再生するために「play.php」という名前のファイルを使用する必要があります。このファイルを作成し、次のコードを追加します。

<?php
$id = $_GET['id'];
$conn = new mysqli('localhost', 'root', '', 'music');
$sql = "SELECT * FROM songs WHERE id=$id";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$music = "./uploads/" . $row['file'];
?>

<audio controls autoplay>
    <source src="<?php echo $music; ?>" type="audio/mpeg">
    你的浏览器不支持音频播放。
</audio>

上記のコードでは、「play.php」ファイルの URL パラメータ「id」を取得することで、データベース内の対応する音楽ファイル情報を照会し、音楽ファイルのパス HTML5 オーディオ プレーヤーで表示されます。

5. 音楽のダウンロード

ユーザーが音楽リストの「ダウンロード」リンクをクリックすると、「download.php」という名前のファイルを使用して音楽のダウンロード機能を実装する必要があります。ファイル。ファイルを作成し、次のコードを追加します。

<?php
$file = $_GET['file'];
$filepath = './uploads/' . $file;
header('Content-Type: application/octet-stream');
header('Content-disposition: attachment; filename="'.$file.'"');
header('Content-Length: ' . filesize($filepath));
readfile($filepath);
?>

上記のコードでは、「download.php」ファイルの URL パラメータ「file」を取得することで、音楽ファイルが添付ファイルとしてユーザーのコンピュータにダウンロードされます。ファイルパスに従ってください。

6. 概要

上記のコード例を通じて、簡単なオンライン音楽ダウンロードおよび再生システムを実装できます。ユーザーは音楽ファイルをアップロードでき、システムはそのファイルをサーバー上の指定されたディレクトリに保存し、関連情報をデータベースに保存します。ユーザーは、音楽リストを表示して、音楽ファイルの再生またはダウンロードを選択できます。このシステムはシンプルですが、ユーザーに基本的なオンライン音楽サービスを提供できます。もちろん、ニーズに応じて拡張・最適化することも可能です。

以上がPHP を使用してシンプルなオンライン音楽ダウンロードおよび再生システムを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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