【问题标题】:in PHP, how do I create an array of all strings between two strings?在 PHP 中,如何在两个字符串之间创建一个包含所有字符串的数组?
【发布时间】:2010-02-19 15:53:57
【问题描述】:

我有一大段文字,例如:

<b>First content</b> followed by <b>second content</b>

"First content" and then "second content"

我想创建一个看起来像这样的数组: [1] => "第一个内容" [2] => "第二个内容"

从任一示例中,我获取两个标签之间的内容。我已经弄清楚如何获取第一个实例,但无法找出使其递归的最佳方法。

【问题讨论】:

    标签: php parsing string arrays


    【解决方案1】:

    如果您知道“第一内容”和“第二内容”之间的确切含义,请使用explode

    http://php.net/manual/en/function.explode.php

    例如

    $values = explode("followed by", $yourtext);
    

    (如果您只想要纯文本,请在数组元素上使用“strip_tags”)

    【讨论】:

    • 我最终使用了 explode ,但使用了我的标签(在上面的示例中为 或 "),然后从逻辑上找出标签中包含哪些标签。谢谢!
    【解决方案2】:

    如果您希望提取特定标签之间的所有内容,最好使用像simplehtmldom 这样的 HTML DOM 解析器。

    【讨论】:

      【解决方案3】:

      基本上你需要一个“START(.+?)END”形式的正则表达式,例如

      $a = "<b>First content</b> followed by <b>second content</b>";
      preg_match_all("~<b>(.+?)</b>~", $a, $m);
      print_r($m[1]);
      

      【讨论】:

        【解决方案4】:
        $string="<b>First content</b> followed by <b>second content</b>";
        $s = explode("followed by", strip_tags($string));
        print_r($s);
        

        【讨论】:

          【解决方案5】:
          <?php
          
          $yourArray = split(" followed by ", $yourString);
          
          ?>
          

          只要在要拆分为数组的每个值之间有相同的文本,就可以使用此示例。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2019-11-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-05-07
            • 2017-07-18
            相关资源
            最近更新 更多