主要是获取远程图片路径,还有文件名称,请各位高手指点!!!!

解决方案 »

  1.   

    点我的blog 专业讲正则的。
    N个人问这个问题了。。
      

  2.   

    preg_match (pattern,str,match)数组的第0位是全匹配,第一位是满足()里面的东西。 <?$contant="aaa<img   src='../images/bannersms.jpg'   fdsafds>aaa";    preg_match_all("/<img.+src=('|\")(.+)\\1/isU",$contant,$a);    注意这里的很经典的\\1 是将第一个()中的东西用来配对.  print_r(   $a   );  对数组来解析  $a[0] 为<img   src='../images/bannersms.jpg'  fdsafds>  
    ?>
    ()中的内容将后被缓存到数组中去。
      

  3.   

    谢谢大哥,可是我还有个问题,就是src=有3中情况 就是=号后面可是是空也可以是'也可以是" 请问大哥你这个正则是完全包含了这3种情况嘛?好像漏了空吧???
      

  4.   

    那如果类似的地址$contant="aaa<img   src=../images/bannersms.jpg  fdsafds>aaa";  那样的话那段正则应该怎么写 注意src=后面没有'或"
      

  5.   

    而且小弟想得到那个文件的名称比如上面的 bannersms.jpg应该怎么做???
      

  6.   

    <img[^>]*?src\s*=\s*["']?([^"'\s>]*)[^>]*>
    $match[1]就是src的属性值
    专业正则 写出这样的表达式不怕被人笑
    /<img.+src=('|\")?(.+)\\1/isU
      

  7.   

    大哥我想知道的是一条正则里面同时吧文件名前面的地址和文件名区分开来比如说:<IMG src="http://www.1t1t.com/upload/2007-05/s_591949_atm00003.jpg" border="0">我现在就是想利用一条正则得到 arry(1)=>"http://www.1t1t.com/upload/2007-05/"  arry(2)=>"s_591949_atm00003.jpg" 不好意思可能我没表达清楚,因为小弟接下去要做的是利用preg_replace()来进行模式替换,把arry(1)的字符串使用我自定义的变量来表示,请各位大哥继续接分!!谢谢!
      

  8.   

    绝全的
    '/\<img[^\>]+src[\n\r\s]*=[\n\r\s]*([\"\']?)[^\>\1]+\1[^\>]*\>/i'
      

  9.   

    <img[^>]*?src\s*=\s*["']?((?:\w+://)?(?:\w*/)*)([^"'\s>]*)[^>]*>
      

  10.   

    $match[1] 就是array(1) $match[2] 就是array(2)
      

  11.   

    这个不是PHP的写法是java和.net的写法 
    有问题也是*?的问题 你把?去掉就可以了 参数用isU
      

  12.   

    /<img[^>]*src\s*=\s*["']?((?:\w+://)?(?:\w*/)*)([^"'\s>]*)[^>]*>/i
    估计就可以了
      

  13.   

    关于src=... src='..' src="..."取出后,再判断一下不就可以了?
      

  14.   

    /*提取全部IMG标签*/<?php
    set_time_limit(0);
    $url = "http://www.yahoo.com/";
    $fp = fopen($url,"r");
    while(!feof($fp)){
        $string.=fgets($fp,128);
    }
    fclose($fp);
    preg_match_all("/<img.+src=('|\"|)?(.*)(\\1)([\s].*)?>/ismUe",$string,$a,PREG_SET_ORDER);
    $u = parse_url($url);
    $p = $u['scheme']."://".$u['host'].'/'.$u['path'];
    foreach($a as $aa){
        if(!preg_match("/http:/",$aa[2])){
            echo "<img src=\"".$p.$aa[2]."\"><P>";
        }else{
            echo "<img src=".$aa[2]."><P>";
        }
    }
      

  15.   

    谢谢大家大家看看我写的这条还算可以嘛?$string='<IMG src="http://www.1t1t.com/upload/2007-05/s_591949_atm00001.jpg" border=0>';
    $regx = "/<img src=('|\")(.+\/)([^\/]+\.(gif|jpg|bmp))\\1[^>].+>/isU";
    preg_match_all($regx, $string, $arrayout,2);foreach ($arrayout as $k=>$v) {

    echo $v[2]."<br>";
    echo $v[3]."<br>";
    }
    请大家看看