【问题标题】:Extract part of string with PHP [duplicate]用PHP提取部分字符串[重复]
【发布时间】:2012-03-28 22:12:13
【问题描述】:

可能重复:
How to extract img src, title and alt from html using php?

这将是一个字符串的例子:

$src = '<img src="/avatars/admin.jpg" class="avatar 23 avatar-30 avatar-default" height="30" width="30" style="width: 30px; height: 30px;" alt="avatar">';

$out 应该是/avatars/admin.jpg

问题是/avatars/admin.jpg是当前登录用户头像的路径,所以它是动态变化的。

如何以最简单的方式获取$out

【问题讨论】:

标签: php string extract


【解决方案1】:

好吧,如果这是您需要处理的唯一 HTML,那么您可能会使用正则表达式...

preg_match('/\ssrc="([^"]+)"/', $src, $matches);

【讨论】:

    【解决方案2】:

    看看http://php.net/manual/de/function.substr.phphttp://php.net/manual/de/function.strpos.php

    您可以将两者结合使用,例如 substr( $string, strpos('src="') + 5, strpos('.jpg') + 4 );

    我没试过,因为我真的不知道你想“提取”什么,但现在你明白了基本的想法;)

    g.r.

    【讨论】:

      【解决方案3】:

      您可以将字符串设置为:

      $str = '&lt;img src="/avatars/$avatar.jpg" class="avatar 23 avatar-30 avatar-default" height="30" width="30" style="width: 30px; height: 30px;" alt="avatar"&gt;';

      否则,我会使用str_replace

      【讨论】:

        【解决方案4】:

        使用这个

        function get_string_between($string, $start, $end){
            $string = " ".$string;
            $ini = strpos($string,$start);
            if ($ini == 0) return "";
            $ini += strlen($start);
            $len = strpos($string,$end,$ini) - $ini;
            return substr($string,$ini,$len);
        }
        
        $fullstring = "$src = '<img src="/avatars/admin.jpg" class="avatar 23 avatar-30 avatar-default" height="30" width="30" style="width: 30px; height: 30px;" alt="avatar">';
        ";
        $parsed = get_string_between($fullstring, "<img src=", " class=");
        
        echo $parsed; //
        

        谢谢

        【讨论】:

          【解决方案5】:

          试试这样的。

          <?php
          $src = '<img src="/avatars/admin.jpg" class="avatar 23 avatar-30 avatar-default" height="30" width="30" style="width: 30px; height: 30px;" alt="avatar">';
          $regex = '|src="(.+?)"|';
          preg_match($regex,$src,$match);
          $out = $match[1];
          ?>
          

          【讨论】:

            【解决方案6】:

            只使用substrstrpos

            $src = '<img src="/avatars/admin.jpg" class="avatar 23 avatar-30 avatar-default" \
            height="30" width="30" style="width: 30px; height: 30px;" alt="avatar">';
            
            $start = strpos($src, '"') + 1;
            $end = $start + strpos($src, '"', $start - 1) - 1;
            echo substr($src, $start, $end);
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2018-01-13
              • 2018-11-07
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2022-01-18
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多