2017-04-06 69 views
1
<?php 

function convertYoutube($string) { 
    return preg_replace(
     "/\s*[a-zA-Z\/\/:\.]*youtu(be.com\/watch\?v=|.be\/)([a-zA-Z0-9\-_]+)([a-zA-Z0-9\/\*\-\_\?\&\;\%\=\.]*)/i", 
     "<iframe width=\"420\" height=\"315\" src=\"//www.youtube.com/embed/$2\" allowfullscreen></iframe>", 
     $string 
    ); 
} 

$text = "Youtube long url: https://www.youtube.com/watch?v=waIkasvAVGo\n\nYoutube short url: http://youtu.be/waIkasvAVGo"; 

echo convertYoutube($text); 

我發現這個代碼在這個網站: http://syframework.alwaysdata.net/convert-youtube-url-to-iframe正則表達式 - BB代碼才能使用Youtube標籤

該腳本工作得很好。但是,只需要在BBcode中工作即可。例如:[YouTube]<url>[/YouTube]

有沒有人有如何解決這個問題的建議?

+0

請不要用手做簡碼,用一個完善的圖書館就像我自己的簡碼:https://github.com/thunderer/Shortcode –

回答

1

試試這個:

<?php 

    function convertYoutube($string) { 
     return preg_replace(
      "/\[youtube\]\s*[a-zA-Z\/\/:\.]*youtu(be.com\/watch\?v=|.be\/)([a-zA-Z0-9\-_]+)([a-zA-Z0-9\/\*\-\_\?\&\;\%\=\.]*)\[\/youtube\]/i", 
      "<iframe width='420' height='315' src='//www.youtube.com/embed/$2' allowfullscreen></iframe>", 
      $string 
     ); 
    } 

    $text = "Youtube long url: [youtube]https://www.youtube.com/watch?v=waIkasvAVGo[/youtube]\n\nYoutube short url: [youtube]http://youtu.be/waIkasvAVGo[/youtube]"; 

    echo convertYoutube($text); 
?> 
+0

謝謝。有用 – 3kbest