Как сохранить контент PHP в файл с PHP
Привет, я только недавно сделал проигрыватель FLASH AS3 XML, который отлично работает, кроме той части, где мне нужно напечатать весь XML. Мне помог кто-то скомпилировать этот код, который прекрасно работает, но я хочу иметь возможность сохранять XML в файл, а не просто читать его. И обновить себя, если количество.mp3s в данной папке увеличивается.
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;
1 ответ
Попробуйте добавить file_put_contents('playlist.m3u', $xmlBody);
в конец файла - это сохранит содержимое списка воспроизведения в playlist.m3u
, Вы можете использовать это вместе со всем кодом, который у вас уже есть, или просто отключить / удалить эхо, если оно вам не нужно.
Что касается вашего второго вопроса - чтобы обновить файл с новым содержимым папки, вам необходимо:
a) Иметь другой монитор процесса для изменений, затем вызвать этот скрипт / файл php. b) Установить на сервере задание cron или c) Время от времени вызывать скрипт вручную (или из вашего флеш-плеера), вызывая, например, http://localhost/my-m3u-generator.php