How to extract text between 2 tags in php

前端 未结 3 368
温柔的废话
温柔的废话 2021-01-07 11:12

I need to locate 2 tags in a lump of text and keep whatever text is between them.

For example if the \"Begin\" tag was -----start----- and the \"End\" t

3条回答
  •  心在旅途
    2021-01-07 11:55

    Here are a couple of ways:

    $lump = 'rtyfbytgyuibg-----start-----isnv4b987b6vdc5y6ughnjmn9b8v76ctyubinn98b76r-----end-----gcgkhjkn';
    $start_tag = '-----start-----';
    $end_tag = '-----end-----';
    
    // method 1
    if (preg_match('/'.preg_quote($start_tag).'(.*?)'.preg_quote($end_tag).'/s', $lump, $matches)) {
        echo $matches[1];
    }
    
    // method 2 (faster)
    $startpos = strpos($lump, $start_tag) + strlen($start_tag);
    if ($startpos !== false) {
        $endpos = strpos($lump, $end_tag, $startpos);
        if ($endpos !== false) {
            echo substr($lump, $startpos, $endpos - $startpos);
        }
    }
    
    // method 3 (if you need to find multiple occurrences)
    if (preg_match_all('/'.preg_quote($start_tag).'(.*?)'.preg_quote($end_tag).'/s', $lump, $matches)) {
        print_r($matches[1]);
    }
    

提交回复
热议问题