<img src="/photos/169.jpeg" border="0" alt="Imagine" width="150" height="170" />
<span>Everybody Plays</span><img src="/photos/170.jpeg" border="0" alt="&quot;Great Hall&quot;" width="150" height="170" />
<span>Community</span>
=================
有多个img如何用正则取得所有alt的值?
还有取得所有<span>里的数据,如<span>Everybody Plays</span>把Everybody Plays取出来
怎么写正则?我找了一此取src的正则换成alt,用不了

解决方案 »

  1.   

    正则:
       $str = '<img alt="这是提示文字" src="test.gif"/>';
       preg_match('|alt\s*=\s*".*"|',$str,$match);
       print_r($match);
    Javascript:
       var alt = document.getElementById("imgId").alt;
       alert(alt);
      

  2.   

    取span中的值preg_match('|<span>\s*.*\s*</span>|',$target,$match);
    print_r($match);
      

  3.   

    不准确啊,
    <?php
    $str='<img src="/photos/small_6_180.jpg" border="0" alt="Wyoming Seminary" width="150" height="113" /><br>
    preg_match('|alt\s*=\s*".*"|', $str,$matches);
    echo $matches[0];
    ?>
    下面是输出结果:
    alt="Wyoming Seminary" width="150" height="113"
    好多东西,我只要alt里的内容 .
      

  4.   


    $str=' <img src="/photos/small_6_180.jpg" border="0" alt="Wyoming Seminary" width="150" height="113" /> <br>';
    preg_match("/alt\s*=\s*[\"\']([^\"\']+)[\"\']/i", $str,$matches); 
    echo $matches[1]; 
      

  5.   

    谢谢,这个可以,
    <span>的呢?我用下面这个输出的是带<span>的,还要再来一次去掉html标记的操作。
    preg_match_all("/\<span\>(.*?)<\/span\>/sim",$str,$matches_span);
      

  6.   

    是我输出写出,我写成$matches_span[0][$keys],所以是整个字符串,应该写成$matches_span[1][$keys]
    谢谢,还有一个问题,取src的值,
    preg_match_all("/<img.+src=\"?(.+\.(jpg|jpeg|jpg|gif|bmp|bnp|png))\"?.+>/i",$str,$matches);
    preg_match_all( '~<img.*src=(?:"|\'|)(.+\.\w{3,4})~isU', $str, $matches);
    这两个都有点问题,
    第一个发现有些img取不到,看了一下捉取的页面中的这个img和其它img的区别,好象是因为alt内容有分行。
    第二个能取到全部img的src,但第一个数组元素输出中没有整个模式的字符串,因为我除了要src还要整个img字符串再来拿里面的alt,
      

  7.   

    phpQuery
    http://blog.yctin.com/archives/jquery-php-edition-phpquery/
      

  8.   


    var reg = new RegExp("alt\s*=\s*[\"\']?([^\"\'\s]+).+[\r\n]<span>([^<\/]+)","igm");
    var t=1;
    while ((rs = reg.exec(html)) != null){
    document.writeln(t+':<br/>');
    document.writeln('src=:'+rs[1]+'<br/>');
    document.writeln('span=:'+rs[2]+'<br/>');
    ++t;
    }