网页的代码里很多:<a href="/index.php/Image:EISL_1.1.6.gif" class="image" title="Image:EISL 1.1.6.gif"><img src="/images/0/04/EISL_1.1.6.gif" alt="Image:EISL 1.1.6.gif" width="648" height="486" longdesc="/index.php/Image:EISL_1.1.6.gif" /></a>
<br />
铺砌搅拌的均质池
<br />
<a href="/index.php/Image:EISL_1.1.7.gif" class="image" title="Image:EISL 1.1.7.gif"><img src="/images/d/da/EISL_1.1.7.gif" alt="Image:EISL 1.1.7.gif" width="945" height="685" longdesc="/index.php/Image:EISL_1.1.7.gif" /></a>
<br />
穿孔导流槽式均质池
<br />
<a href="/index.php/Image:EISL_1.1.8.gif" class="image" title="Image:EISL 1.1.8.gif"><img src="/images/e/e9/EISL_1.1.8.gif" alt="Image:EISL 1.1.8.gif" width="586" height="275" longdesc="/index.php/Image:EISL_1.1.8.gif" /></a>
我现在只需要得到图片名(EISL 1.1.6.gif),该怎么做呢?
用正则截取还是别的什么办法呢?求指导

解决方案 »

  1.   

    window.onload = function() {
    var obj = document.getElementsByTagName('a');
    for (var i = 0; i < obj.length; i ++) if (obj[i].className == 'image') alert(obj[i].title.split(':')[1]);
    }
      

  2.   

    preg_match_all("/<a href=\"\/index.php\/Image:(.*?)\" class=\"image\" title=\"Image:(.*?)\">/",$str,$matches);
      

  3.   

    只需要 EISL 1.1.6.gif  ? 下面的 EISL 1.1.7.gif......都不要?
      

  4.   

    都要,就是要所有的gif/png/swf
      

  5.   

    1楼取的是title中的名称,EISL与文件名间是空格,下面的方法取href中的图片文件名:
    window.onload = function() {
    var obj = document.getElementsByTagName('a');
    for (var i = 0; i < obj.length; i ++) if (obj[i].className == 'image') {
    var s = obj[i].href;
    alert(s.substring(s.lastIndexOf('/')).split(':')[1]);
    }
    }
      

  6.   

    汗没看清,还以为是在JS版呢。
    不过,可以把这个代码字符串加入到一个隐藏的DOM容器中,也是可以通过JS方法来取的。
      

  7.   

    $query = mysql_query("select page_id,page_title,page_text from pagecontents where page_id > 100000 ") or die(mysql_error() );while ($rows=mysql_fetch_array($query))
    {
      $pid = $rows['page_id'];
        $string   = $rows['page_title'];
        $string = mysql_real_escape_string($string);
        $string1  =urlencode($string);$url = "http://localhost/index.php/"."$string1";
     
    $contents = file_get_contents($url);$contents是页面的内容
    怎么判断$contents中是否存在.gif或者.png图片啊?
      

  8.   

    if(preg_match('/.+\.(gif|png)/is',$contents))
          echo '有';
    else
         echo '没有';
      

  9.   

    $query = mysql_query("select page_id,page_title,page_text from pagecontents") or die(mysql_error() );
    while ($rows=mysql_fetch_array($query))
    {
        $pid = $rows['page_id'];
        $string   = $rows['page_title'];
        $string = mysql_real_escape_string($string);
        $string1  =urlencode($string);   $url = $rows['page_text'];
        
    $contents = file_get_contents($url);
    }
     if(preg_match('/.+\.(gif|png)/is',$contents))
     mysql_select_db("new",$con);
     $sql = "Update image set img_exist = 1 where page_id = ('{$pid}')"很多警告,没有成功
      

  10.   

    <?php
    $str = <<<EOF
    <a href="/index.php/Image:EISL_1.1.6.gif" class="image" title="Image:EISL 1.1.6.gif"><img src="/images/0/04/EISL_1.1.6.gif" alt="Image:EISL 1.1.6.gif" width="648" height="486" longdesc="/index.php/Image:EISL_1.1.6.gif" /></a>
    <br />
    铺砌搅拌的均质池
    <br />
    <a href="/index.php/Image:EISL_1.1.7.gif" class="image" title="Image:EISL 1.1.7.gif"><img src="/images/d/da/EISL_1.1.7.gif" alt="Image:EISL 1.1.7.gif" width="945" height="685" longdesc="/index.php/Image:EISL_1.1.7.gif" /></a>
    <br />
    穿孔导流槽式均质池
    <br />
    <a href="/index.php/Image:EISL_1.1.8.gif" class="image" title="Image:EISL 1.1.8.gif"><img src="/images/e/e9/EISL_1.1.8.gif" alt="Image:EISL 1.1.8.gif" width="586" height="275" longdesc="/index.php/Image:EISL_1.1.8.gif" /></a>
    EOF;
    $n = preg_match('/Image:(.*)"/isU', $str, $matches);
    if ($n) {
            print_r($matches[1]);
    }
    ?>简单配一下。
      

  11.   

    $query = mysql_query("select page_id,page_title,page_text from pagecontents") or die(mysql_error() );
    while ($rows=mysql_fetch_array($query))
    {
        $pid = $rows['page_id'];
        $string   = $rows['page_title'];
        $string = mysql_real_escape_string($string);
        $string1  =urlencode($string);    
        $contents = $rows['page_text'];
    }
     if(preg_match('/.+\.(gif|png)/is',$contents))
     mysql_select_db("new",$con);
     $sql = "Update image set img_exist = 1 where page_id = ('{$pid}')"$contents就是数据库里存的网页内容,如果$contents内包含有.gif或者.png就把数据库里的字段img_exist更新为1.
    现在代码是这样,没报错,但是也没实现功能
      

  12.   

    更新应该放入while循环里面把。要不然只能取最后一条。那就没意义了...
    $query = mysql_query("select page_id,page_title,page_text from pagecontents") or die(mysql_error() );
    mysql_select_db("new",$con);
    while ($rows=mysql_fetch_array($query))
    {
        $pid = $rows['page_id'];
        $string   = $rows['page_title'];
        $string = mysql_real_escape_string($string);
        $string1  =urlencode($string);    
        $contents = $rows['page_text']; if(preg_match('/.+\.(gif|png)/is',$contents)){
     
         $sql = "Update image set img_exist = 1 where page_id = '{$pid}'";
         mysql_query($sql) or die(mysql_error());
     }
    }
      

  13.   

    $query = mysql_query("select page_id,page_title,page_text from pagecontents") or die(mysql_error() );
    mysql_select_db("new",$con);
    while ($rows=mysql_fetch_array($query))
    {
        $pid = $rows['page_id'];
        $string   = $rows['page_title'];
        $string = mysql_real_escape_string($string);
        $string1  =urlencode($string);    
        $contents = $rows['page_text']; if(preg_match('/.+\.(gif|png)/is',$contents)){
     
         $sql = "Update image set img_exist = 1 where page_id = '{$pid}'";
         mysql_query($sql) or die(mysql_error());
     }
    }代码OK了,谢谢帮忙
    还有一个问题就是每个页面有一张不需要处理的图片,poweredby_mediawiki_88x31.png。怎么过滤掉这张图片,再判断是否有其他的gif和png呢?不然每个页面都更新成1了
      

  14.   

    $contents = preg_replace('/poweredby_mediawiki_88x31\.png/s','',$contents); //加一步,过滤掉它。