Использование preg match все совпадения в коде Javascript
Я создал регулярное выражение в PHP с помощью функции preg_match_all, чтобы получить звуковой url SoundCloud в моем посте WordPress. Регулярное выражение работает правильно без каких-либо проблем:
preg_match_all[0][0] = https://soundcloud.com/anevo-remix/h3llo-anevo-remix-final
Когда я пытаюсь preg_match_all[0][0] плеер не загружается, но когда я ставлю url https://soundcloud.com/anevo-remix/h3llo-anevo-remix-final, плеер загружается без каких-либо проблем. Как я могу использовать PHP код таким образом, что плеер загружается?
<?php
$soundcloud_pattern = "/((http://(soundcloud.com/.*|soundcloud.com/.*/.*|soundcloud.com/.*/sets/.*|soundcloud.com/groups/.*|snd.sc/.*))|(https://(soundcloud.com/.*|soundcloud.com/.*/.*|soundcloud.com/.*/sets/.*|soundcloud.com/groups/.*)))/i";
if(preg_match_all($soundcloud_pattern, $subject, $soundcloud_audio_url)) {
var_dump($soundcloud_audio_url);
echo '
<script src="https://connect.soundcloud.com/sdk/sdk-3.0.0.js"></script>
<div id="soundcloud-audio"></div>
<script type="text/JavaScript">
SC.oEmbed("'.$soundcloud_audio_url[0][0].'", {
element: document.getElementById("soundcloud-audio")
});
</script>';
}
?>
1 ответ:
Попробуйте вот так. Я также не вижу причин использовать
preg_match_all<?php $soundcloud_pattern = "/((http:\/\/(soundcloud\.com\/.*|soundcloud\.com\/.*\/.*|soundcloud\.com\/.*\/sets\/.*|soundcloud\.com\/groups\/.*|snd\.sc\/.*))|(https:\/\/(soundcloud\.com\/.*|soundcloud\.com\/.*\/.*|soundcloud\.com\/.*\/sets\/.*|soundcloud\.com\/groups\/.*)))/i"; if (preg_match($soundcloud_pattern, $subject, $soundcloud_audio_url)) : ?> <script src="https://connect.soundcloud.com/sdk/sdk-3.0.0.js"></script> <div id="soundcloud-audio"></div> <script> SC.oEmbed(<?= json_encode(trim($soundcloud_audio_url[0])) ?>, { element: document.getElementById("soundcloud-audio") }); </script> <?php endif ?>
Comments