2012-12-08 57 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