Эй, ребята, представьте себе этот URL:
http://www.youtube.com/watch?v=6n8PGnc_cV4&feature=rec-LGOUT-real_rn-2r-13-HM
что является самым чистым и лучшим регулярным выражением для следующих действий:
1.) Я хочу раздетьсяот каждой вещи после видео URL.так что остается только http://www.youtube.com/watch?v=6n8PGnc_cV4.
2.) Я хочу преобразовать этот URL в http://www.youtube.com/v/6n8PGnc_cV4
Поскольку я не так уж много регулярных выражений, мне нужна вашаhelp:
$content = preg_replace('http://.*?\?v=[^&]*', '', $content); return $content;
edit: проверить это!Я хочу создать действительно простой плагин Wordpress, который распознает каждый нормальный URL-адрес YouTube в моем контенте $ и заменяет его на код для вставки:
<?php function videoplayer($content) { $embedcode = '<object class="video" width="308" height="100"><embed src="' . . '" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="308" height="100" wmode="opaque"></embed></object>'; //filter normal youtube url like http://www.youtube.com/watch?v=6n8PGnc_cV4&feature=rec-LGOUT-real_rn-2r-13-HM //convert it to http://www.youtube.com/v/6n8PGnc_cV4 //use embedcode and pass along the new youtube url $content = preg_replace('', '', $content); //return embedcode return $content; } add_filter('the_content', 'videoplayer'); ?>
Редактировать: простейшее регулярное выражение: /http:\/\/www\.youtube\.com\/watch\?v=.*/
/http:\/\/www\.youtube\.com\/watch\?v=.*/
Все ссылки на Youtube одинаковы.Чтобы получить идентификатор видео из них, сначала вы отрежете лишние параметры с конца, а затем отрежете все, кроме последних 11 символов.Посмотрите его в действии:
$url = "http://www.youtube.com/watch?v=1rnfE4eo1bY&feature=..."; $url = $url.left(42); // "http://www.youtube.com/watch?v=1rnfE4eo1bY" $url = $url.right(11); // "1rnfE4eo1bY" $result = "http://www.youtube.com/v/" + $url; // "http://www.youtube.com/v/1rnfE4eo1bY"
Вы можете унифицировать все ваши ссылки на YouTube (удалив ненужные параметры) с помощью скрипта Greasemonkey: http://userscripts.org/scripts/show/86758. Скрипты Greasemonkey изначально поддерживаются в виде дополнений в Google Chrome.1009 *
И в качестве бонуса, один (ладно, на самом деле два) лайнер:
$url = "http://www.youtube.com/watch?v=1rnfE4eo1bY&feature=..."; $result = "http://www.youtube.com/v/" + $url.left(42).right(11);
- 3ICE
Вы можете просто разделить его на первый амперсанд.
$content = explode('&', $content); $content = $content[0];
$url = "http://www.youtube.com/v/6n8PGnc_cV4"; $start = strpos($url,"v="); echo 'http://www.youtube.com/v/'.substr($url,$start+2);
Я использую этот критерий поиска в своем скрипте:
/((http|ftp)\:\/\/)?([w]{3}\.)?(youtube\.)([a-z]{2,4})(\/watch\?v=)([a-zA-Z0-9_-]+)(\&feature=)?([a-zA-Z0-9_-]+)?/