【问题标题】:Return string segment based on strings根据字符串返回字符串段
【发布时间】:2010-08-26 06:15:21
【问题描述】:

如何根据 php.ini 中字符串的内容返回字符串的一部分。与使用整数长度的 substr() 和相关函数不同

所以如果给我们一个这样的字符串 here is a nice string that is being used as an example

我们如何返回这样的字符串

nice string

我们必须以某种方式传递函数athat,以便它知道起点和终点。它会找到第一个a,然后开始跟踪字符,然后当它找到that 时,它会停止并返回。

明确一点:我们知道原始字符串的内容...以及发送的参数。

【问题讨论】:

    标签: php string search


    【解决方案1】:

    使用此功能:

    function get_string_between($string, $start, $end)
    {
        $ini = strpos($string,$start);
        if ($ini == 0)
            return "";
        $ini += strlen($start);
        $len = strpos($string,$end,$ini) - $ini;
        return substr($string,$ini,$len);
    }
    
    $input = 'here is a nice string that is being used as an example';
    $output = get_string_between($input, 'a', 'that');
    echo $output;  //outputs: nice string
    

    【讨论】:

    • 这会打印出'nice string',但它应该是这样吗?返回字符串应该是 'nice string' - 没有空格。
    • @vtorhonen,为此,您可以使用get_string_between($input, 'a ', 'that');
    【解决方案2】:

    preg_match 也可以使用正则表达式:

    <?php
    
    function get_string_between($string,$start,$end) {
        preg_match("/\b$start\b\s(.*?)\s\b$end\b/",$string,$matches);
        return $matches[1];
    }
    
    $str = "here is a nice string that is being used as an example";
    print get_string_between($str,"a","that")."\n";
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多