suscribirse sacar pagina example cualquier como php regex vimeo

php - sacar - Una forma fácil de obtener la identificación de Vimeo desde una url de vimeo



vimeo api wordpress (7)

Estoy tratando de obtener solo el ID de una URL vimeo. ¿Hay alguna forma más sencilla que esta? Todos los urls de video vimeo que veo son siempre:

https://vimeo.com/29474908

https://vimeo.com/38648446

// VIMEO $vimeo = $_POST[''vimeo'']; function getVimeoInfo($vimeo) { $url = parse_url($vimeo); if($url[''host''] !== ''vimeo.com'' && $url[''host''] !== ''www.vimeo.com'') return false; if (preg_match(''~^http://(?:www/.)?vimeo/.com/(?:clip:)?(/d+)~'', $vimeo, $match)) { $id = $match[1]; } else { $id = substr($link,10,strlen($link)); } if (!function_exists(''curl_init'')) die(''CURL is not installed!''); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://vimeo.com/api/v2/video/$id.php"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 10); $output = unserialize(curl_exec($ch)); $output = $output[0]; curl_close($ch); return $output[''id'']; } $vimeo_id = getVimeoInfo($vimeo);


Creo que usar parse_url() es la mejor opción:

$vimeo = ''https://vimeo.com/29474908''; echo (int) substr(parse_url($vimeo, PHP_URL_PATH), 1);


Esto debería recuperar el ID de todos los tipos de urls vimeo.

$url = ''https://vimeo.com/cool/29474908?title=0&byline=0&portrait=0''; $urlParts = explode("/", parse_url($url, PHP_URL_PATH)); $videoId = (int)$urlParts[count($urlParts)-1];


Hay muchas URLs de vimeo que son válidas. Pocos ejemplos son

Todas las URL válidas:

http://vimeo.com/6701902 http://vimeo.com/670190233 http://player.vimeo.com/video/67019023 http://player.vimeo.com/video/6701902 http://player.vimeo.com/video/67019022?title=0&byline=0&portrait=0 http://player.vimeo.com/video/6719022?title=0&byline=0&portrait=0 http://vimeo.com/channels/vimeogirls/6701902 http://vimeo.com/channels/vimeogirls/67019023 http://vimeo.com/channels/staffpicks/67019026 http://vimeo.com/15414122 http://vimeo.com/channels/vimeogirls/66882931

Todas las URL inválidas:

http://vimeo.com/videoschool http://vimeo.com/videoschool/archive/behind_the_scenes http://vimeo.com/forums/screening_room http://vimeo.com/forums/screening_room/topic:42708

Escribí esta expresión regular en Java que captura todas las URL válidas anteriores y rechaza las inválidas. No estoy seguro de si vimeo tiene más URL válidas.

(https?://)?(www.)?(player.)?vimeo.com/([a-z]*/)*([0-9]{6,11})[?]?.*

Espero que esto ayude...


Para aquellos de ustedes que quieran ver el código completamente implementado utilizando PHP, estoy usando la expresión regular proporcionada por user2200660 y formateada para PHP por Morgan Delaney, aquí está:

$vimeo = ''http://player.vimeo.com/video/67019023''; if(preg_match("/(https?:////)?(www/.)?(player/.)?vimeo/.com//([a-z]*//)*([0-9]{6,11})[?]?.*/", $vimeo, $output_array)) { echo "Vimeo ID: $output_array[5]"; } //outputs: Vimeo ID: 67019023


Si alguien lo necesita en JavaScript basado en @ user2200660 responda:

function getVimeoVideoId(url){ var regex = new RegExp(/(https?:////)?(www.)?(player.)?vimeo.com//([a-z]*//)*([0-9]{6,11})[?]?.*/); if ( regex.test(url) ) { return regex.exec(url)[5]; } }


Una expresión regular de trabajo actual:

function getIdFromVimeoURL(url) { return /(vimeo(pro)?/.com)//(?:[^/d]+)?(/d+)/??(.*)?$/.exec(url)[3]; } console.log(getIdFromVimeoURL("https://vimeo.com/channels/staffpicks/272053388")) console.log(getIdFromVimeoURL("https://vimeo.com/272053388")) console.log(getIdFromVimeoURL("https://player.vimeo.com/video/272053388")) // ...etc.


[Editar] ¡Ahora puedes hacerlo todo a través de la API!

Si proporciona una lista separada por comas de sus URL de Vimeo a través del parámetro "enlaces" al punto final de búsqueda ( https://developer.vimeo.com/api/endpoints/videos#GET/videos ) devolveremos esos videos como respuestas API .

p.ej

GET https://api.vimeo.com/videos?links=https://vimeo.com/74648232,https://vimeo.com/232323497

[Original]

Vimeo proporciona muchos tipos diferentes de urls de video, algunos de los cuales no incluyen el ID. Para garantizar el soporte en todas las URL de Vimeo, debe solicitar a Vimeo directamente la ID.

Puede solicitar vimeo a través del punto final oEmbed .

Hay muchas opciones, pero la opción más fácil es hacer una solicitud GET de HTTP a la URL https://vimeo.com/api/oembed.json?url={vimeo_url} , reemplazando {vimeo_url} con la url adecuada.

Por ejemplo, para obtener el ID de la URL que proporcionó anteriormente ( https://vimeo.com/29474908 ) realice una solicitud HTTP GET para

https://vimeo.com/api/oembed.json?url=https://vimeo.com/29474908

Analice la respuesta JSON y video_id parámetro video_id .