0

再会。

我有链接http://vk.com/id98429809?z=photo98429809_299166823%2Falbum98429809_0%2Frev

请告诉我如何获得:

$id=$arr['id']; // $id = 98429809
$type=$arr['type']; // $type= photo
$num=$arr['num']; // $num= 299166823

请告诉我如何爆炸链接并得到这个?

4

4 回答 4

0

尝试这个,

<?php

    $str='photo98429809_299166823';
    $arr=explode('_',$str);
    $num=$arr[1]; // $num= 299166823
    preg_match('/^[a-z]+/i', $arr[0], $m);
    $type=$m[0];
    $id=str_replace($type,"",$arr[0]);
    $num=$arr[1];
    echo '<br/>';
    echo $id;
    echo '<br/>';
    echo $type;
    echo '<br/>';
    echo $num;
?>

在http://writecodeonline.com/php/上测试

于 2013-06-28T04:54:44.520 回答
0

所有链接的通用答案 vk.com

if(substr_count($link,"photo")>0){
    $type='photo'; $arg='photo';
    }
    elseif(substr_count($link,"video")>0){
    $type='video'; $arg='video';
    }
    elseif(substr_count($link,"id")>0){
    $type='id'; $arg='id';
    }
    else{
    $type='id'; $arg='/';
    }

$arr1=explode($arg,$link);

if($arg=='photo'){
$arr2=explode($arg,$arr1[1]);
$arr3=explode('_',$arr2[0]);

$id=$arr3[0];
$item_id=substr($arr3[1],0,9);
}
elseif($arg=='video'){
$arr2=explode($arg,$arr1[1]);
$arr3=explode('_',$arr2[0]);

$id=$arr3[0];
$item_id=substr($arr3[1],0,9);
}
elseif($arg=='id' || $arg=='/'){

$id=$arr1[1];
$item_id=$arr1[1];
}
echo $link;
echo '<br>id = '.$id.'<br>item_id = '.$item_id;

代码很大,但他适用于所有链接

谢谢大家的帮助!

于 2013-06-28T05:27:07.223 回答
0
$url = "http://vk.com/id98429809?z=photo98429809_299166823%2Falbum98429809_0%2Frev";
if (preg_match('#=([^\d]+)([\d]+)_([\d]+)#', $url, $matches)) {
    $id = $matches[2];
    $type = $matches[1];
    $num = $matches[3];
}
于 2013-06-28T05:15:51.263 回答
0

试试吧,我认为这对你来说既简单又有用

 $str=$_GET["z"];
 $arr['type']=substr($str,0,5) ;
 $arr['id']=substr($str,5,8) ; 
 $arr['num']=substr($str,14,3)  ;

 echo $arr['id']." ".$arr['type']." ".$arr['num'];
于 2013-06-28T05:17:21.837 回答