28 lines
927 B
PHP
28 lines
927 B
PHP
<?php
|
|
namespace Misuzu\Parsers\BBCode\Tags;
|
|
|
|
use Misuzu\Parsers\BBCode\BBCodeTag;
|
|
|
|
final class AudioTag extends BBCodeTag {
|
|
public function parseText(string $text): string {
|
|
return preg_replace_callback(
|
|
'#\[audio\]((?:https?:\/\/).+?)\[/audio\]#',
|
|
function ($matches) {
|
|
$url = parse_url($matches[1]);
|
|
|
|
if(empty($url['scheme']) || !in_array(mb_strtolower($url['scheme']), ['http', 'https'], true))
|
|
return $matches[0];
|
|
|
|
// return sprintf(
|
|
// '<span class="js-msz-embed-media" data-msz-embed-url="%1$s"></span>'
|
|
// . '<noscript><a href="%1$s" class="link" rel="noopener noreferrer">%1$s</a></noscript>',
|
|
// $matches[1]
|
|
// );
|
|
|
|
return "<audio controls src='{$matches[1]}'></audio>";
|
|
},
|
|
$text
|
|
);
|
|
}
|
|
}
|