2012-12-08 59 views
0

無法正常工作。我想我已經看着它太長,我瞎了的問題:從嵌入代碼獲取Viddler視頻的唯一ID(regex/parse_url)

<?php 
$str = $_POST['data']; 
$pattern = '#(www\.|https?:\/\/){?}[a-zA-Z0-9]{2,254}\.[a-zA-Z0-9]{2,4}(\S*)#i'; 
    if (preg_match_all($pattern, $str, $matches, PREG_PATTERN_ORDER)) { 
    $uri = "($matches[1])"; 
    } 
$path = parse_url($uri, PHP_URL_PATH); 
$output = substr(strrchr($path, '/'), 1); 
?> 

樣品嵌入代碼 - 我需要的URL的a695c468一部分 - 它在長度上可以改變:

<iframe id="viddler-a695c468" src="//www.viddler.com/embed/a695c468/?f=1&offset=0&autoplay=0&secret=91361932&disablebranding=0&view_secret=91361932" width="545" height="349" frameborder="0" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>

回答

2

爲什麼要從URL解析它? iframe id會更快。 preg_match_all('/"viddler-(\w+)"/', $str, $matches, PREG_PATTERN_ORDER);

更新: 試試這個 preg_match_all('/www\.viddler\.com\/embed\/(\w+)\//', $str, $matches, PREG_PATTERN_ORDER);

+0

如果有人只粘貼鏈接到形式,而不是整個嵌入代碼。 – mrmunk

+0

更新了我的答案 –

+0

我做錯了什麼 - 我得到的是「Array」而不是a695c468。我試着讀數組[0]的部分沒有改變。 – mrmunk