ramzes, тебе отдельно код для теста
методы (+/-)
protected function mp3Player($mp3) {
return '<span class="green"><audio controls><source src="' . $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['SERVER_NAME'] . '/files/mp3/' . basename($mp3) . '"></audio></span>';
}
protected function downloadMp3($mp3)
{
$dir = ROOT_PATH . 'files/mp3';
if (!is_dir($dir)) {
mkdir($dir, '0777', 1);
}
$headers = get_headers($mp3, 1);
$newfile = md5($mp3) . '.mp3'; // START_TIME
if (!file_exists($dir . DIRECTORY_SEPARATOR . $newfile)) {
if ($headers['Content-Type'] == 'audio/mpeg') {
$uploadfil = new \SplFileObject($mp3, 'rb');
$file = new \SplFileObject($dir . DIRECTORY_SEPARATOR . $newfile, 'w');
$file->setFlags(\SplFileObject::SKIP_EMPTY);
if ($file->flock(LOCK_EX)) {
$file->ftruncate(0);
while (!$uploadfil->eof()) {
$file->fwrite($uploadfil->fgets());
}
}
$file->flock(LOCK_UN);
}
}
return (file_exists($dir . DIRECTORY_SEPARATOR . $newfile) ? $dir . DIRECTORY_SEPARATOR . $newfile : false);
}
protected function mp3($var)
{
return preg_replace_callback(
'#\[mp3](.+?)\[/mp3]#is',
function ($matches) {
$path = $this->downloadMp3(trim($matches[1]));
return $path ? $this->mp3Player($path) : false;
},
$var,
3
);
}