$array=Array
(
    [0] => /ukinfo/d/file/house/tolet/2010-08-30/8db9ec09606784a17cd802447220b3e2.jpg
    [1] => /ukinfo/d/file/house/tolet/2010-08-30/da81c2cb173f3c48c764fa8ccf5535c8.jpg
    [2] => /ukinfo/d/file/house/tolet/2010-08-30/21deefada22880fa8a63fbe5ca931ee3.jpg
    [3] => /ukinfo/d/file/house/tolet/2010-08-30/809e2e86f76e99124895839c9691cb1f.jpg
    [4] => /ukinfo/d/file/house/tolet/2010-08-30/88f5d206f73540eda876a7552ef72b4d.jpg
    [5] => /ukinfo/d/file/house/tolet/2010-08-30/3e06d72b91a9e8da50971d792279d655.jpg
    [6] => /ukinfo/d/file/house/tolet/2010-08-30/c1c5a47e2044c8c4ddd39552ddf842d7.jpg
    [7] => /ukinfo/d/file/house/tolet/2010-08-30/d425794ea6d4428ae332068a2b6ca95b.jpg
    [8] => /ukinfo/d/file/house/tolet/2010-08-30/f96b614b0ae258faae274acadceffc75.jpg
    [9] => /ukinfo/d/file/house/tolet/2010-08-30/e303e87d4cffa28dbf9c874817d5688b.jpg
)
$pic="/ukinfo/d/file/house/tolet/2010-08-30/small8db9ec09606784a17cd802447220b3e2.jpg"
请问如何获得$pic中的文件名(small8db9ec09606784a17cd802447220b3e2.jpg),并去掉small后(8db9ec09606784a17cd802447220b3e2.jpg),并与数组中各个值的文件名比较是否相同(本例与$array[0]的文件名相同)"/ukinfo/d/file/house/tolet/2010-08-30/"这个不是固定的,是可能变化的。知道要用正则,但是自己弄了半天也没成功

解决方案 »

  1.   

    $array = Array
    (
        0 => '/ukinfo/d/file/house/tolet/2010-08-30/8db9ec09606784a17cd802447220b3e2.jpg',
        1 => '/ukinfo/d/file/house/tolet/2010-08-30/da81c2cb173f3c48c764fa8ccf5535c8.jpg',
        2 => '/ukinfo/d/file/house/tolet/2010-08-30/21deefada22880fa8a63fbe5ca931ee3.jpg'
    );$pic="/ukinfo/d/file/house/tolet/2010-08-30/small8db9ec09606784a17cd802447220b3e2.jpg";
    $filename = substr(substr($pic, strrpos($pic, '/') +1), 5);foreach($array as $v) {
       if (substr($v, strrpos($v, '/') + 1) == $filename) {
          echo $v;
          break;
       }
    }
      

  2.   


     $array=array
    (
        0 => '/ukinfo/d/file/house/tolet/2010-08-30/8db9ec09606784a17cd802447220b3e2.jpg',
        1 => '/ukinfo/d/file/house/tolet/2010-08-30/da81c2cb173f3c48c764fa8ccf5535c8.jpg',
        2 => '/ukinfo/d/file/house/tolet/2010-08-30/21deefada22880fa8a63fbe5ca931ee3.jpg',
        3 => '/ukinfo/d/file/house/tolet/2010-08-30/809e2e86f76e99124895839c9691cb1f.jpg',
        4 => '/ukinfo/d/file/house/tolet/2010-08-30/88f5d206f73540eda876a7552ef72b4d.jpg',
        5 => '/ukinfo/d/file/house/tolet/2010-08-30/3e06d72b91a9e8da50971d792279d655.jpg',
        6 => '/ukinfo/d/file/house/tolet/2010-08-30/c1c5a47e2044c8c4ddd39552ddf842d7.jpg',
        7 => '/ukinfo/d/file/house/tolet/2010-08-30/d425794ea6d4428ae332068a2b6ca95b.jpg',
        8 => '/ukinfo/d/file/house/tolet/2010-08-30/f96b614b0ae258faae274acadceffc75.jpg',
        9 => '/ukinfo/d/file/house/tolet/2010-08-30/e303e87d4cffa28dbf9c874817d5688b.jpg'
    );
    $pic="/ukinfo/d/file/house/tolet/2010-08-30/small8db9ec09606784a17cd802447220b3e2.jpg";
    $path=pathinfo($pic, PATHINFO_DIRNAME );
    $str=substr(pathinfo($pic, PATHINFO_BASENAME ),5);
     $s=$path.'/'.$str; print_r( array_keys($array,$s));   //输出匹配的键名Array
    (
        [0] => 0
    )
      

  3.   

    既然去掉前面的规律不好找,你可以尝试吧后面的取出来。
    $array=Array
    (
        "[0]" => "/ukinfo/d/file/house/tolet/2010-08-30/8db9ec09606784a17cd802447220b3e2.jpg",
        "[1]" => "/ukinfo/d/file/house/tolet/2010-08-30/da81c2cb173f3c48c764fa8ccf5535c8.jpg",
        "[2]" => "/ukinfo/d/file/house/tolet/2010-08-30/21deefada22880fa8a63fbe5ca931ee3.jpg",
        "[3]" => "/ukinfo/d/file/house/tolet/2010-08-30/809e2e86f76e99124895839c9691cb1f.jpg",
        "[4]" => "/ukinfo/d/file/house/tolet/2010-08-30/88f5d206f73540eda876a7552ef72b4d.jpg",
        "[5]" => "/ukinfo/d/file/house/tolet/2010-08-30/3e06d72b91a9e8da50971d792279d655.jpg",
        "[6]" => "/ukinfo/d/file/house/tolet/2010-08-30/c1c5a47e2044c8c4ddd39552ddf842d7.jpg",
        "[7]" => "/ukinfo/d/file/house/tolet/2010-08-30/d425794ea6d4428ae332068a2b6ca95b.jpg",
        "[8]" => "/ukinfo/d/file/house/tolet/2010-08-30/f96b614b0ae258faae274acadceffc75.jpg",
        "[9]" => "/ukinfo/d/file/house/tolet/2010-08-30/e303e87d4cffa28dbf9c874817d5688b.jpg"
    );
    $pic="/ukinfo/d/file/house/tolet/2010-08-30/small8db9ec09606784a17cd802447220b3e2.jpg";
    $pattern='/(\w*)(\.)(\w*)$/';
    preg_match_all($pattern,$pic,$aa);
    foreach ($array as $id=>$row){
    preg_match_all($pattern, $row, $result);
    if($aa[0][0]==$result[0][0]){
    echo  "第".$id."个匹配成功:值为<br/>".$row;
    }
    }