misuzu/src/Parsers/BBCode/Tags/AudioTag.php

28 lines
927 B
PHP
Raw Normal View History

2022-09-13 13:14:49 +00:00
<?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))
2022-09-13 13:14:49 +00:00
return $matches[0];
2023-01-26 22:51:33 +00:00
// 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]
// );
2022-09-13 13:14:49 +00:00
2023-01-26 22:51:33 +00:00
return "<audio controls src='{$matches[1]}'></audio>";
2022-09-13 13:14:49 +00:00
},
$text
);
}
}