怎么爆炸数组中的链接?

时间:2013-06-28 04:41:30

标签: php explode

美好的一天。

我有链接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 个答案:

答案 0 :(得分: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/

上进行测试

答案 1 :(得分: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];
}

答案 2 :(得分: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'];

答案 3 :(得分: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;

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

感谢大家的帮助!