0

こんにちは、私は最近、すべての XML を入力しなければならない部分を除けば、非常にうまく機能する FLASH AS3 XML プレイリスト プレーヤーを作成しました。私はこのコードをうまくコンパイルするために誰かに助けてもらいましたが、XMLを読み取るだけでなく、ファイルに保存できるようにしたいと考えています。また、指定されたフォルダー内の .mp3 の数が増加した場合に自身を更新します。

    require_once('getid3/getid3.php');
    $dir = $_GET['folder'];
    $xmlBody = '<?xml version="1.0" encoding="ISO-8859-1"?>';
    $xmlBody .= "<XML>";
    $getID3 = new getID3;
    $DirectoryToScan = 'SOUNDS';
    $dirHandle = opendir($dir);
    $strIsNull = "not found";
    $i = 0;
    while (($file = readdir($dirHandle)) !== false) {
       $FullFileName = realpath($dir.'/'.$file);
       if ((substr($FullFileName, 0, 1) != '.') && is_file($FullFileName)) {
         $i++;
         set_time_limit(30);
         $ThisFileInfo = $getID3->analyze($FullFileName);
         getid3_lib::CopyTagsToComments($ThisFileInfo);
         $xmlBody .= '<Song>';
         $xmlBody .= '<songNum>' . $i . '</songNum>
            <songURL>' .basename($ThisFileInfo['filenamepath']).'</songURL>
            <songArtist>' .(!empty($ThisFileInfo['comments_html']['artist']) ?  implode('<br>',$ThisFileInfo['comments_html']['artist'])  : $strIsNull) .'</songArtist>
            <songTitle>' .(!empty($ThisFileInfo['comments_html']['title']) ?implode('<br>', $ThisFileInfo['comments_html']['title'])  : $strIsNull) . '</songTitle>
            <songSize>'  .round($ThisFileInfo['audio']['bitrate'] / 1000).' kbps </songSize>
            <songDuration>' . $ThisFileInfo['playtime_string'].' </songDuration>';
          $xmlBody .= '</Song>';
       }
    }
    $xmlBody .= "</XML>";
    header('Content-type: text/xml');
    echo $xmlBody; 
4

1 に答える 1

1

ファイルの最後に追加file_put_contents('playlist.m3u', $xmlBody);してみてください - これにより、プレイリストの内容が に保存されplaylist.m3uます。これは、既に持っているすべてのコードと連携して使用することも、不要な場合はエコーを無効化/削除することもできます。

2 番目の質問については、新しいフォルダーの内容でファイルを更新するには、次のことを行う必要があります。

a) 変更を監視する別のプロセスを用意し、この php スクリプト/ファイルを呼び出す b)サーバーで cron ジョブをセットアップする、または c) スクリプトを時々手動で (またはフラッシュ プレーヤーから) 呼び出します。http://localhost/my-m3u-generator.php

于 2014-04-30T17:36:43.097 に答える