| Server IP : 54.36.91.62 / Your IP : 216.73.217.112 Web Server : Apache System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : coopiak ( 151928) PHP Version : 8.3.23 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/coopiak/amisdesseniors-fr/lyon/plugins/system/nrframework/NRFramework/Helpers/ |
Upload File : |
<?php
/**
* @author Tassos Marinos <info@tassos.gr>
* @link https://www.tassos.gr
* @copyright Copyright © 2024 Tassos All Rights Reserved
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
*/
namespace NRFramework\Helpers;
defined('_JEXEC') or die;
class Video
{
/**
* Returns the Video URL details.
*
* Supported platforms:
* - YouTube
* - Vimeo
*
* @param string $url
*
* @return array
*/
public static function getDetails($url)
{
$id = '';
$provider = '';
if (preg_match(self::getYouTubePattern(), $url, $matches))
{
$id = !empty($matches[1]) ? $matches[1] : $matches[2];
$provider = 'youtube';
}
else if (preg_match(self::getVimeoPattern(), $url, $matches))
{
$id = !empty($matches[1]) ? $matches[1] : null;
$provider = 'vimeo';
}
else if (preg_match(self::getFacebookVideoPattern(), $url))
{
$id = $url;
$provider = 'facebookvideo';
}
else if (preg_match(self::getDailymotionPattern(), $url, $matches))
{
$id = end($matches);
$provider = 'dailymotion';
}
return [
'id' => $id,
'provider' => $provider
];
}
/**
* Get YouTube Pattern.
*
* @return string
*/
public static function getYouTubePattern()
{
return '/^https?:\/\/(?:m\.|www\.)?youtube\.com\/(?:watch\?v=|embed\/|shorts\/)?([a-zA-Z0-9_-]{11})|^https?:\/\/youtu\.be\/([a-zA-Z0-9_-]{11})/';
}
/**
* Get Vimeo Pattern.
*
* @return string
*/
public static function getVimeoPattern()
{
return '/^https?:\/\/(?:www\.)?(?:player\.)?vimeo\.com\/(\d+)/';
}
/**
* Get Facebook Video Pattern.
*
* @return string
*/
public static function getFacebookVideoPattern()
{
return '/^(?:(?:https?:)?\/\/)?(?:www\.)?facebook\.com\/(?:watch\/\?v=|[\w\.]+\/videos\/(?:[\w\.]+\/)?)?(\d+)/';
}
/**
* Get Dailymotion Pattern.
*
* @return string
*/
public static function getDailymotionPattern()
{
return '/(?:dailymotion\.com\/(?:video|hub)\/|dai\.ly\/)([a-zA-Z0-9]+)/';
}
}