Я создаю блог, который должен анализировать теги bbcode следующим образом:
Ввод: <youtube=http://www.youtube.com/watch?v=VIDEO_ID&feature=channel>
Выход:
<object width="400" height="245">
<param name="movie" value="http://www.youtube- nocookie.com/v/VIDEO_ID&hl=en&fs=1&rel=0&showinfo=0"></param>
<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube-nocookie.com/v/VIDEO_ID&hl=en&fs=1&rel=0&showinfo=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="245"></embed>
</object>
Моя функция до сих пор невероятно проста, потому что я застрял на самой легкой части! Прямо сейчас у меня есть функция главного процесса, которая вызывает функции разностного процесса. В этом случае одним из них является processYouTubeVideos (). Поэтому я называю это так:
$str = eregi_replace('\<youtube=([^>]*)\>', processYouTubeVideos("\\1"), $str);
processYouTubeVideos () прекрасно получает URL-адреса из тега youtube, но по какой-то причине при использовании explode () (или split) разделитель не обнаруживается Даже используя такие тестовые значения, как "u" или "tube" ...
function processYouTubeVideos ($str) {
$params = explode("?", $str);
$params = explode("&", $params[1]);
return $params[0];
}