Регулярка для поиска id видео с vk.com?

Всем привет!
Возникла необходимость вставки видео с vk.com.
Погуглив нашел не большую функцию для данной возможности.
class InfisJSC_VKontakte_MatchCallback
{
    public static function matchVKvideo($url, $matchedId, array $site)
    {
	$pageHtml = file_get_contents('http://vkontakte.ru/video' . $matchedId);
	if (preg_match('/\\\"hash2\\\":\\\"(?P<hash>[a-zA-Z0-9]+)\\\"/siU', $pageHtml, $match))
	{
	    if (preg_match('/(?P<oid>[0-9\-]+)_(?P<id>[0-9]+)/si', $matchedId, $oidid))
	    {
		return $oidid['oid'] . '_' . $oidid['id'] . '_' . $match['hash'];
	    }
	}
	elseif (preg_match('%src=\\\"http:\\\/\\\/www\.youtube\.com\\\/embed\\\/(?P<hash>[a-zA-Z0-9]+)\?%siU', $pageHtml, $match))
	{
	    return $match['hash'];
	}
	return '';
    }
/////////

Не много изменил под себя
public function matchVKvideo($url, $matchedId)
    {
		$pageHtml = file_get_contents($url);// . $matchedId);
		
		if (preg_match('/\\\"hash2\\\":\\\"(?P<hash>[a-zA-Z0-9]+)\\\"/siU', $pageHtml, $match))
		{
			if (preg_match('/(?P<oid>[0-9\-]+)_(?P<id>[0-9]+)/si', $matchedId, $oidid))
			{
				return $oidid['oid'] . '_' . $oidid['id'] . '_' . $match['hash'];
			}
		}
		elseif (preg_match('%src=\\\"http:\\\/\\\/www\.youtube\.com\\\/embed\\\/(?<hash>[a-zA-Z0-9]+)\?%isU', $pageHtml, $match))
		{
			return $match['hash'];
		}
		return '';
    }


Но столкнулся с данной проблемой,
так как в вк есть так же ютубовские видео, и данный метод должен их id тоже выдавать. Этого не происходит.
не много полазив в html'е вк, допер что id видео у ютуба может быть не только [a-zA-Z0-9] но и что то типа этого
TIZ8CVa-Zm8
причем черта может быть в любом месте, так что не все видео получается получить. В регулярках я понимаю не много, пробовал данную конструкцию
([a-zA-Z0-9]-[a-zA-Z0-9])|([a-zA-Z0-9])+
, так же парсит не все видео. Собственно как модифицировать данную регулярку?
  • Вопрос задан
  • 1280 просмотров
Решения вопроса 1
@Billy_Milligan
Так добавьте черту =)

[a-zA-Z0-9-]

Если не подходит, то для более подробного ответа приведите примеры ссылок (на видео) которые нужно парсить
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы