在" id _"之间提取字符串和" .html"

时间:2013-05-15 05:43:27

标签: php

我想从优酷视频中提取ID:

http://v.youku.com/v_show/id_XNTU2NzQyNzQ0.html?f=19275195&ev=3

id是id_和.html

之间的随机字母

如何做到这一点?

3 个答案:

答案 0 :(得分:3)

使用此

$input = 'http://v.youku.com/v_show/id_XNTU2NzQyNzQ0.html?f=19275195&ev=3';
preg_match('~id_(.*?).html~', $input, $output);
echo $output[1];

输出

XNTU2NzQyNzQ0

Codepad

答案 1 :(得分:1)

您可以尝试以下代码:

<?php
$varStr = 'http://v.youku.com/v_show/id_XNTU2NzQyNzQ0.html?f=19275195&ev=3';
$filename = basename($varStr);
preg_match_all('/id_(.*)\.html/', $filename, $match);
echo $match[1][0];
?>

答案 2 :(得分:0)

只是为了在你的REGEX中使用命名结果,我建议做这样的事情。其他人的工作都很好,我只是通过忽略句点来添加指定的分组以及非贪婪的方法

<?
$regex = "/\id_(?P<video_id>[^\.]*)\./";

if(preg_match($regex, "http://v.youku.com/v_show/id_XNTU2NzQyNzQ0.html?f=19275195&ev=3", $matches)) {
        echo $matches['video_id'];
}