【问题标题】:Set substring start and end at clostest other substring在最近的其他子字符串处设置子字符串开始和结束
【发布时间】:2014-06-13 16:06:19
【问题描述】:

我是一个真正的 php 新手。我希望这不是一个愚蠢的问题。 所以我有一个字符串:

$string = "Lorem ipsum dolor START sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore END magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt END ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem END ipsum dolor sit amet."

在那个字符串里面有我的“START”。我得到了起始位置

$startpos = strpos($string, "START");

现在,我想要后面第一个“END”的位置。 我需要那个位置,因为我想要“START”和最近的“END”之间的那个子字符串。

我希望你能理解我的问题。 谢谢

【问题讨论】:

    标签: php string substring


    【解决方案1】:
    $start = strpos($string, 'START')+5;
    $end = strpos($string, 'END', $start);
    
    $inside = trim(substr($string, $start, $end - $start));
    

    See demo

    +5 表示“START”的字母,在 “START”之后开始新的 $inside 字符串。

    $inside 是使用 substr() - substr(string, start pos, length) 构建的

    trim() 删除 $inside 末尾的多余空格。

    【讨论】:

      【解决方案2】:

      您可以再次使用strpos,但添加第一次搜索的偏移量:

      $startpos = strpos($string, "START");
      $endpos = strpos($string, "END", $startpos);
      

      【讨论】:

        猜你喜欢
        • 2023-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-14
        • 2014-12-29
        • 2017-02-20
        • 2020-11-17
        相关资源
        最近更新 更多