首页 > 后端开发 > php教程 > 如何在 PHP 中使用不同的分隔符类型提取子字符串?

如何在 PHP 中使用不同的分隔符类型提取子字符串?

Barbara Streisand
发布: 2025-01-01 07:04:09
原创
294 人浏览过

How to Extract Substrings in PHP Using Different Delimiter Types?

在 PHP 中确定子字符串

在 PHP 中,可以使用多种方法来实现获取指定分隔符内的子字符串。例如,如果两端的分界符相同(例如 [foo] 和 [/foo]),则以下方法就足够了:

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 = 'this is my [tag]dog[/tag]';
$parsed = get_string_between($fullstring, '[tag]', '[/tag]');
echo $parsed; // (result = dog)
登录后复制

此外,如果分隔符是唯一的(例如,[foo] 和 [/foo2]),则修改后的函数可以使用:

function get_inner_substring($str, $delim) {
    $results = array();
    $delim_len = strlen($delim);
    $pos = strpos($str, $delim);
    while ($pos !== false) {
        $pos_end = strpos($str, $delim, $pos + $delim_len);
        if ($pos_end !== false) {
            $results[] = substr($str, $pos + $delim_len, $pos_end - $pos - $delim_len);
            $pos = strpos($str, $delim, $pos_end + $delim_len);
        } else {
            break;
        }
    }
    return $results;
}
登录后复制

使用此函数,可以从由不同分隔符分隔的字符串中提取多个子字符串:

$string = " foo I like php foo, but foo I also like asp foo, foo I feel hero  foo";
$arr = get_inner_substring($string, "foo");
print_r($arr); // (result = ['I like php', 'I also like asp', 'I feel hero'])
登录后复制

以上是如何在 PHP 中使用不同的分隔符类型提取子字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板