#!/usr/bin/env php 'rock', 'Rock' => 'rock', ]; foreach ($files as $file) { $info = shell_exec( 'vorbiscomment' . ' ' . escapeshellarg($file) ); $lines = explode("\n", $info); $data = []; foreach ($lines as $line) { $line = trim($line); if ($line === '') { continue; } $parts = explode('=', $line, 2); if (count($parts) == 2) { $data[$parts[0]] = $parts[1]; } } if (!isset($data['album']) || !isset($data['artist']) || !isset($data['title']) || !isset($data['genre']) || !isset($data['date']) || !isset($data['tracknumber']) ) { echo "Meta data missing in $file:\n"; var_dump($data); exit(); } $template = preg_replace( "#DTITLE=.+\n#", 'DTITLE=' . $data['artist'] . ' / ' . $data['album'] . "\n", $template ); $template = preg_replace( "#DYEAR=\n#", 'DYEAR=' . $data['date'] . "\n", $template ); $template = preg_replace( "#DGENRE=\n#", 'DGENRE=' . $data['genre'] . "\n", $template ); if (isset($genreCategoryMap[$data['genre']])) { $template = preg_replace( "|#CATEGORY=.+\n|", 'CATEGORY=' . $genreCategoryMap[$data['genre']] . "\n", $template ); } $track = intval($data['tracknumber']) - 1; $template = preg_replace( "#TTITLE" . $track . "=.+\n#", 'TTITLE' . $track . '=' . $data['title'] . "\n", $template ); //var_dump($info, $data); //die(); } echo $template; ?>