维基照片的格式大多是
“http://upload.wikimedia.org/wikipedia/commons/thumb/照片名.jpg(png等)/多少像素-照片名.jpg(png等)求一个PHP正则,DOM,或者其他方法,可以更改维基小照片地址变成大照片地址。
去掉thumb部分,截取到第一个 .jpg(png等)。谢谢。比如原始小照片地址:
http://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Shanghai_montage.png/250px-Shanghai_montage.png
大照片地址
http://upload.wikimedia.org/wikipedia/commons/d/de/Shanghai_montage.png

解决方案 »

  1.   


    <?php function getBigpicSrc($smallPicsrc){
        $regx = "/^(http:\/\/.+\.(png|gif|jpg|jpeg|bmp))(\/[0-9]+px\-[^\/]+)?$/";
        if (preg_match($regx,$smallPicsrc,$out)) {
            return $out[1];
        }
        return FALSE;
    }$arr = array(
    "http://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Shanghai_montage.png/250px -Shanghai_montage.png",
    "http://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Shanghai_montage.png/250px -Shanghai_montage.pn g",
    "http://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Shanghai_montage.pn g/250px -Shanghai_montage.png",
    "http://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Shanghai_montage.pn g/250px -Shanghai_montage.pn g",
    "http://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Shanghai_montage.gif/250px -Shanghai_montage.gif"
    );foreach ($arr as $url){
        $bigsrc = getBigpicSrc($url);
        if ($bigsrc) {
            echo "Ok!";
        }else{
            echo "No!";
        }
        echo "\r\n\t".$url."\r\n\t=> \r\n\t".$bigsrc."\r\n-------------------------\r\n";    
    }
    /*
    X-Powered-By: PHP/5.2.0
    Content-type: text/htmlOk!
    http://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Shanghai_montage.png/250px -Shanghai_montage.png
    => 
    http://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Shanghai_montage.png/250px -Shanghai_montage.png
    -------------------------
    No!
    http://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Shanghai_montage.png/250px -Shanghai_montage.pn g
    => 

    -------------------------
    Ok!
    http://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Shanghai_montage.pn g/250px -Shanghai_montage.png
    => 
    http://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Shanghai_montage.pn g/250px -Shanghai_montage.png
    -------------------------
    No!
    http://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Shanghai_montage.pn g/250px -Shanghai_montage.pn g
    => 

    -------------------------
    Ok!
    http://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Shanghai_montage.gif/250px -Shanghai_montage.gif
    => 
    http://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Shanghai_montage.gif/250px -Shanghai_montage.gif
    -------------------------*/
      

  2.   

    多写了一个+号, //$regx = "/^(http:\/\/.+\.(png|gif|jpg|jpeg|bmp))(\/[0-9]+px\-[^\/]+)?$/";
    $regx = "/^(http:\/\/.+\.(png|gif|jpg|jpeg|bmp))(\/[0-9]+px\-[^\/]+)?$/"; //这个
      

  3.   

    $url="http://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Shanghai_montage.png/250px-Shanghai_montage.png";
    $match="#^(.*)(\/thumb)(.*)(\/.*\.(png|gif|jpg|jpeg|bmp))(\/)(.*)$#";
    $url=preg_replace($match,"\\1\\3\\4",$url);
    echo $url
      

  4.   


    。function getBigpicSrc($smallPicsrc){
        $regx = "/^(http:\/\/.+\.(jpg|png|bmp|gif|jpeg))(\/[0-9]+px\-[^\/]+\.(jpg|png|bmp|gif|jpeg))?$/isU";
        if (preg_match($regx,$smallPicsrc,$out)) {
            return $out[1];
        }
        return FALSE;
    }