복붙노트

PHP에서 두 문자열 사이에서 부분 문자열을 얻는 방법은 무엇입니까?

PHP

PHP에서 두 문자열 사이에서 부분 문자열을 얻는 방법은 무엇입니까?

두 단어 (또는 두 문자) 사이의 하위 문자열을 반환하는 함수가 필요합니다. 나는 그것을 달성 PHP 함수가 있는지 궁금하네요. 나는 정규식에 대해서 생각하고 싶지 않다. (글쎄, 나는 할 수 있지만 실제로가는 것이 가장 좋은 방법이라고 생각하지 않는다.) strpos 및 substr 함수를 생각합니다. 다음은 그 예입니다.

$string = "foo I wanna a cake foo";

우리는 함수를 호출합니다 : $ substring = getInnerSubstring ($ string, "foo"); 그것은 "나는 떡을 원한다."

미리 감사드립니다.

최신 정보: 글쎄, 지금까지, 나는 단지 하나의 문자열에서 두 단어의 하위 문자열을 얻을 수있다. 조금 더 멀리 가게하고 getInnerSubstring ($ str, $ delim)을 사용하여 문자열을 가져올 수 있는지 물어 보자. delim value 사이의 값, 예 :

$string =" foo I like php foo, but foo I also like asp foo, foo I feel hero  foo";

{ "PHP가 마음에 들어요", "나는 ASP가 마음에 들어요.", "나는 영웅이된다"}와 같은 배열을 얻습니다.

해결법

  1. ==============================

    1.문자열이 다르면 (예 : [foo] & [/ foo]) 저스틴 쿡 (Justin Cook)의이 게시물을 살펴보십시오. 아래 코드를 복사합니다.

    문자열이 다르면 (예 : [foo] & [/ foo]) 저스틴 쿡 (Justin Cook)의이 게시물을 살펴보십시오. 아래 코드를 복사합니다.

    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)
    
  2. ==============================

    2.정규 표현식을 사용하는 방법은 다음과 같습니다.

    정규 표현식을 사용하는 방법은 다음과 같습니다.

    $str = 'before-str-after';
    if (preg_match('/before-(.*?)-after/', $str, $match) == 1) {
        echo $match[1];
    }
    

    onlinePhp

  3. ==============================

    3.

    function getBetween($string, $start = "", $end = ""){
        if (strpos($string, $start)) { // required if $start not exist in $string
            $startCharCount = strpos($string, $start) + strlen($start);
            $firstSubStr = substr($string, $startCharCount, strlen($string));
            $endCharCount = strpos($firstSubStr, $end);
            if ($endCharCount == 0) {
                $endCharCount = strlen($firstSubStr);
            }
            return substr($firstSubStr, 0, $endCharCount);
        } else {
            return '';
        }
    }
    

    샘플 사용 :

    echo getBetween("a","c","abc"); // returns: 'b'
    
    echo getBetween("h","o","hello"); // returns: 'ell'
    
    echo getBetween("a","r","World"); // returns: ''
    
  4. ==============================

    4.

    function getInnerSubstring($string,$delim){
        // "foo a foo" becomes: array(""," a ","")
        $string = explode($delim, $string, 3); // also, we only need 2 items at most
        // we check whether the 2nd is set and return it, otherwise we return an empty string
        return isset($string[1]) ? $string[1] : '';
    }
    

    사용 예 :

    var_dump(getInnerSubstring('foo Hello world foo','foo'));
    // prints: string(13) " Hello world "
    

    주변 공백을 제거하려면 트림을 사용하십시오. 예:

    var_dump(trim(getInnerSubstring('foo Hello world foo','foo')));
    // prints: string(11) "Hello world"
    
  5. ==============================

    5.

    function getInbetweenStrings($start, $end, $str){
        $matches = array();
        $regex = "/$start([a-zA-Z0-9_]*)$end/";
        preg_match_all($regex, $str, $matches);
        return $matches[1];
    }
    
    $str = "C://@@ad_custom_attr1@@/@@upn@@/@@samaccountname@@";
    $str_arr = getInbetweenStrings('@@', '@@', $str);
    
    print_r($str_arr);
    
  6. ==============================

    6.구분 기호로 foo를 사용하고 있다면 explode ()를보십시오.

    구분 기호로 foo를 사용하고 있다면 explode ()를보십시오.

  7. ==============================

    7.나는 정규 표현식 솔루션을 좋아하지만 다른 어떤 것도 나에게 어울리지 않는다.

    나는 정규 표현식 솔루션을 좋아하지만 다른 어떤 것도 나에게 어울리지 않는다.

    1 개의 결과 만있을 것이라는 것을 안다면 다음을 사용할 수 있습니다 :

    $between = preg_replace('/(.*)BEFORE(.*)AFTER(.*)/sm', '\2', $string);
    

    BEFORE와 AFTER를 원하는 구분 기호로 변경하십시오.

    또한이 함수는 아무 것도 일치하지 않을 경우 전체 문자열을 반환합니다.

    이 솔루션은 멀티 라인이지만 필요에 따라 수정자를 사용할 수 있습니다.

  8. ==============================

    8.

    <?php
      function getBetween($content,$start,$end){
        $r = explode($start, $content);
        if (isset($r[1])){
            $r = explode($end, $r[1]);
            return $r[0];
        }
        return '';
      }
    ?>
    

    예:

    <?php 
      $content = "Try to find the guy in the middle with this function!";
      $start = "Try to find ";
      $end = " with this function!";
      $output = getBetween($content,$start,$end);
      echo $output;
    ?>
    

    이것은 "중간에있는 사람"을 반환합니다.

  9. ==============================

    9.strstr PHP 함수를 두 번 사용하십시오.

    strstr PHP 함수를 두 번 사용하십시오.

    $value = "This is a great day to be alive";
    $value = strstr($value, "is"); //gets all text from needle on
    $value = strstr($value, "be", true); //gets all text before needle
    echo $value;
    

    출력 : "좋은 하루"

  10. ==============================

    10.단일 문자열에서 여러 번 반복되고 [시작] 및 [끝] 패턴이 서로 다른 경우. 다음은 배열을 출력하는 함수입니다.

    단일 문자열에서 여러 번 반복되고 [시작] 및 [끝] 패턴이 서로 다른 경우. 다음은 배열을 출력하는 함수입니다.

    function get_string_between($string, $start, $end){
        $split_string       = explode($end,$string);
        foreach($split_string as $data) {
             $str_pos       = strpos($data,$start);
             $last_pos      = strlen($data);
             $capture_len   = $last_pos - $str_pos;
             $return[]      = substr($data,$str_pos+1,$capture_len);
        }
        return $return;
    }
    
  11. ==============================

    11.여기에 함수가있다.

    여기에 함수가있다.

    function getInnerSubstring($string, $boundstring, $trimit=false) {
        $res = false;
        $bstart = strpos($string, $boundstring);
        if ($bstart >= 0) {
            $bend = strrpos($string, $boundstring);
            if ($bend >= 0 && $bend > $bstart)
                $res = substr($string, $bstart+strlen($boundstring), $bend-$bstart-strlen($boundstring));
        }
        return $trimit ? trim($res) : $res;
    }
    

    그것 같이 사용하십시오

    $string = "foo I wanna a cake foo";
    $substring = getInnerSubstring($string, "foo");
    
    echo $substring;
    

    출력 (앞에 공백이 있고 공백이있는 경우 문자열을 반환합니다)

    결과 사용 기능을 정리하고 싶다면

    $substring = getInnerSubstring($string, "foo", true);
    

    결과 :이 함수는 $ string에 $ boundstring이 없거나 $ string에 $ boundstring이 한 번만 존재하면 false를 반환하고, 그렇지 않으면 $ string에 $ boundstring의 첫 번째 항목과 마지막 항목 사이에 부분 문자열을 반환합니다.

    참고 문헌

  12. ==============================

    12.용도:

    용도:

    <?php
    
    $str = "...server daemon started with pid=6849 (parent=6848).";
    $from = "pid=";
    $to = "(";
    
    echo getStringBetween($str,$from,$to);
    
    function getStringBetween($str,$from,$to)
    {
        $sub = substr($str, strpos($str,$from)+strlen($from),strlen($str));
        return substr($sub,0,strpos($sub,$to));
    }
    
    ?>
    
  13. ==============================

    13.GarciaWebDev와 Henry Wang의 약간 개선 된 코드. empty $ start 또는 $ end가 주어지면, 함수는 $ 문자열의 처음부터 끝까지 값을 반환합니다. 검색 결과 포함 여부에 관계없이 포괄 옵션도 사용할 수 있습니다.

    GarciaWebDev와 Henry Wang의 약간 개선 된 코드. empty $ start 또는 $ end가 주어지면, 함수는 $ 문자열의 처음부터 끝까지 값을 반환합니다. 검색 결과 포함 여부에 관계없이 포괄 옵션도 사용할 수 있습니다.

    function get_string_between ($string, $start, $end, $inclusive = false){
        $string = " ".$string;
    
        if ($start == "") { $ini = 0; }
        else { $ini = strpos($string, $start); }
    
        if ($end == "") { $len = strlen($string); }
        else { $len = strpos($string, $end, $ini) - $ini;}
    
        if (!$inclusive) { $ini += strlen($start); }
        else { $len += strlen($end); }
    
        return substr($string, $ini, $len);
    }
    
  14. ==============================

    14.Julius Tilvikas의 게시물에 뭔가를 추가해야합니다. 나는 그의 기사에서 설명한 것과 같은 해결책을 찾았다. 그러나 나는 실수가 있다고 생각한다. 나는 두 개의 문자열 사이에 문자열을 얻지 못한다. 왜냐하면 나는 시작 문자열의 길이를 빼야하기 때문에이 솔루션으로 더 많은 것을 얻는다. 이렇게하면 두 문자열 사이에 String을 실제로 가져옵니다.

    Julius Tilvikas의 게시물에 뭔가를 추가해야합니다. 나는 그의 기사에서 설명한 것과 같은 해결책을 찾았다. 그러나 나는 실수가 있다고 생각한다. 나는 두 개의 문자열 사이에 문자열을 얻지 못한다. 왜냐하면 나는 시작 문자열의 길이를 빼야하기 때문에이 솔루션으로 더 많은 것을 얻는다. 이렇게하면 두 문자열 사이에 String을 실제로 가져옵니다.

    그의 해결책에 대한 나의 변화는 다음과 같다.

    function get_string_between ($string, $start, $end, $inclusive = false){
        $string = " ".$string;
    
        if ($start == "") { $ini = 0; }
        else { $ini = strpos($string, $start); }
    
        if ($end == "") { $len = strlen($string); }
        else { $len = strpos($string, $end, $ini) - $ini - strlen($start);}
    
        if (!$inclusive) { $ini += strlen($start); }
        else { $len += strlen($end); }
    
        return substr($string, $ini, $len);
    }
    

    Greetz

    에서

  15. ==============================

    15.이것을 시도해보십시오. 저의 연구는 테스트 단어 사이에서 데이터를 가져옵니다.

    이것을 시도해보십시오. 저의 연구는 테스트 단어 사이에서 데이터를 가져옵니다.

    $str = "Xdata test HD01 test 1data";  
    $result = explode('test',$str);   
    print_r($result);
    echo $result[1];
    
  16. ==============================

    16.PHP의 strpos 스타일에서는 시작 기호 sm 또는 끝 기호 em이 발견되지 않으면 false를 반환합니다.

    PHP의 strpos 스타일에서는 시작 기호 sm 또는 끝 기호 em이 발견되지 않으면 false를 반환합니다.

    이 결과 (false)는 시작 및 끝 표시 사이에 아무 것도없는 빈 문자열과 다릅니다.

    function between( $str, $sm, $em )
    {
        $s = strpos( $str, $sm );
        if( $s === false ) return false;
        $s += strlen( $sm );
        $e = strpos( $str, $em, $s );
        if( $e === false ) return false;
        return substr( $str, $s, $e - $s );
    }
    

    이 함수는 첫 번째 일치 항목 만 반환합니다.

    그것은 명백하지만 기능은 먼저 sm과 em을 찾습니다.

    em을 먼저 검색 한 다음 sm을 검색 할 때 문자열을 역방향으로 구문 분석해야하는 경우 원하는 결과 / 동작을 얻을 수 없다는 것을 의미합니다.

  17. ==============================

    17.프로가 아니야. 그러나 나는 최근에이 벽에 너무 마주 쳤다. 그리고 이것은 내가 생각해내는 것이다.

    프로가 아니야. 그러나 나는 최근에이 벽에 너무 마주 쳤다. 그리고 이것은 내가 생각해내는 것이다.

    function tag_contents($string, $tag_open, $tag_close){
       foreach (explode($tag_open, $string) as $key => $value) {
           if(strpos($value, $tag_close) !== FALSE){
                $result[] = substr($value, 0, strpos($value, $tag_close));;
           }
       }
       return $result;
    }
    
    $string = "i love cute animals, like [animal]cat[/animal],
               [animal]dog[/animal] and [animal]panda[/animal]!!!";
    
    echo "<pre>";
    print_r(tag_contents($string , "[animal]" , "[/animal]"));
    echo "</pre>";
    
    //result
    Array
    (
        [0] => cat
        [1] => dog
        [2] => panda
    )
    
  18. ==============================

    18.나는 사용한다

    나는 사용한다

    if (count(explode("<TAG>", $input))>1){
          $content = explode("</TAG>",explode("<TAG>", $input)[1])[0];
    }else{
          $content = "";
    }
    

    원하는 구분 문자를 로 대체하십시오.

  19. ==============================

    19.용도:

    용도:

    function getdatabetween($string, $start, $end){
        $sp = strpos($string, $start)+strlen($start);
        $ep = strpos($string, $end)-strlen($start);
        $data = trim(substr($string, $sp, $ep));
        return trim($data);
    }
    $dt = "Find string between two strings in PHP";
    echo getdatabetween($dt, 'Find', 'in PHP');
    
  20. ==============================

    20.여기에 사용 된 get_string_between () 함수에 몇 가지 문제가있었습니다. 그래서 나는 내 버전으로왔다. 어쩌면 그것은 내 경우와 같은 경우에 사람들을 도울 수 있습니다.

    여기에 사용 된 get_string_between () 함수에 몇 가지 문제가있었습니다. 그래서 나는 내 버전으로왔다. 어쩌면 그것은 내 경우와 같은 경우에 사람들을 도울 수 있습니다.

    protected function string_between($string, $start, $end, $inclusive = false) { 
       $fragments = explode($start, $string, 2);
       if (isset($fragments[1])) {
          $fragments = explode($end, $fragments[1], 2);
          if ($inclusive) {
             return $start.$fragments[0].$end;
          } else {
             return $fragments[0];
          }
       }
       return false;
    }
    
  21. ==============================

    21.이 시간을 썼다면, 다양한 응용 분야에 매우 유용하다는 것을 알게되었습니다.

    이 시간을 썼다면, 다양한 응용 분야에 매우 유용하다는 것을 알게되었습니다.

    <?php
    
    // substr_getbykeys() - Returns everything in a source string that exists between the first occurance of each of the two key substrings
    //          - only returns first match, and can be used in loops to iterate through large datasets
    //          - arg 1 is the first substring to look for
    //          - arg 2 is the second substring to look for
    //          - arg 3 is the source string the search is performed on.
    //          - arg 4 is boolean and allows you to determine if returned result should include the search keys.
    //          - arg 5 is boolean and can be used to determine whether search should be case-sensative or not.
    //
    
    function substr_getbykeys($key1, $key2, $source, $returnkeys, $casematters) {
        if ($casematters === true) {
            $start = strpos($source, $key1);
            $end = strpos($source, $key2);
        } else {
            $start = stripos($source, $key1);
            $end = stripos($source, $key2);
        }
        if ($start === false || $end === false) { return false; }
        if ($start > $end) {
            $temp = $start;
            $start = $end;
            $end = $temp;
        }
        if ( $returnkeys === true) {
            $length = ($end + strlen($key2)) - $start;
        } else {
            $start = $start + strlen($key1);
            $length = $end - $start;
        }
        return substr($source, $start, $length);
    }
    
    // substr_delbykeys() - Returns a copy of source string with everything between the first occurance of both key substrings removed
    //          - only returns first match, and can be used in loops to iterate through large datasets
    //          - arg 1 is the first key substring to look for
    //          - arg 2 is the second key substring to look for
    //          - arg 3 is the source string the search is performed on.
    //          - arg 4 is boolean and allows you to determine if returned result should include the search keys.
    //          - arg 5 is boolean and can be used to determine whether search should be case-sensative or not.
    //
    
    function substr_delbykeys($key1, $key2, $source, $returnkeys, $casematters) {
        if ($casematters === true) {
            $start = strpos($source, $key1);
            $end = strpos($source, $key2);
        } else {
            $start = stripos($source, $key1);
            $end = stripos($source, $key2);
        }
        if ($start === false || $end === false) { return false; }
        if ($start > $end) {
            $temp = $start; 
            $start = $end;
            $end = $temp;
        }
        if ( $returnkeys === true) {
            $start = $start + strlen($key1);
            $length = $end - $start;
        } else {
            $length = ($end + strlen($key2)) - $start;  
        }
        return substr_replace($source, '', $start, $length);
    }
    ?>
    
  22. ==============================

    22.일부 오류 잡기. 특히, 제시된 기능의 대부분은 $ end가 존재하도록 요구합니다. 실제로 제 경우에는 옵션이되어야했습니다. $ end는 선택 사항이며, $ start가 전혀 존재하지 않으면 FALSE를 평가합니다 :

    일부 오류 잡기. 특히, 제시된 기능의 대부분은 $ end가 존재하도록 요구합니다. 실제로 제 경우에는 옵션이되어야했습니다. $ end는 선택 사항이며, $ start가 전혀 존재하지 않으면 FALSE를 평가합니다 :

    function get_string_between( $string, $start, $end ){
        $string = " " . $string;
        $start_ini = strpos( $string, $start );
        $end = strpos( $string, $end, $start+1 );
        if ($start && $end) {
            return substr( $string, $start_ini + strlen($start), strlen( $string )-( $start_ini + $end ) );
        } elseif ( $start && !$end ) {
            return substr( $string, $start_ini + strlen($start) );
        } else {
            return FALSE;
        }
    
    }
    
  23. ==============================

    23.@Alejandro Iglesias 대답의 UTF-8 버전은 비 라틴 문자를 사용할 수 있습니다.

    @Alejandro Iglesias 대답의 UTF-8 버전은 비 라틴 문자를 사용할 수 있습니다.

    function get_string_between($string, $start, $end){
        $string = ' ' . $string;
        $ini = mb_strpos($string, $start, 0, 'UTF-8');
        if ($ini == 0) return '';
        $ini += mb_strlen($start, 'UTF-8');
        $len = mb_strpos($string, $end, $ini, 'UTF-8') - $ini;
        return mb_substr($string, $ini, $len, 'UTF-8');
    }
    
    $fullstring = 'this is my [tag]dog[/tag]';
    $parsed = get_string_between($fullstring, '[tag]', '[/tag]');
    
    echo $parsed; // (result = dog)
    
  24. ==============================

    24.이것은 내가 이것을 위해 사용하고있는 함수입니다. 단일 또는 다중 구분 기호에 대해 하나의 함수에서 두 개의 대답을 결합했습니다.

    이것은 내가 이것을 위해 사용하고있는 함수입니다. 단일 또는 다중 구분 기호에 대해 하나의 함수에서 두 개의 대답을 결합했습니다.

    function getStringBetweenDelimiters($p_string, $p_from, $p_to, $p_multiple=false){
        //checking for valid main string  
        if (strlen($p_string) > 0) {
            //checking for multiple strings 
            if ($p_multiple) {
                // getting list of results by end delimiter
                $result_list = explode($p_to, $p_string);
                //looping through result list array 
                foreach ( $result_list AS $rlkey => $rlrow) {
                    // getting result start position
                    $result_start_pos   = strpos($rlrow, $p_from);
                    // calculating result length
                    $result_len         =  strlen($rlrow) - $result_start_pos;
    
                    // return only valid rows
                    if ($result_start_pos > 0) {
                        // cleanying result string + removing $p_from text from result
                        $result[] =   substr($rlrow, $result_start_pos + strlen($p_from), $result_len);                 
                    }// end if 
                } // end foreach 
    
            // if single string
            } else {
                // result start point + removing $p_from text from result
                $result_start_pos   = strpos($p_string, $p_from) + strlen($p_from);
                // lenght of result string
                $result_length      = strpos($p_string, $p_to, $result_start_pos);
                // cleaning result string
                $result             = substr($p_string, $result_start_pos+1, $result_length );
            } // end if else 
        // if empty main string
        } else {
            $result = false;
        } // end if else 
    
        return $result;
    
    
    } // end func. get string between
    

    간단한 사용을 위해 (2를 반환) :

    $result = getStringBetweenDelimiters(" one two three ", 'one', 'three');
    

    결과 배열에 테이블의 각 행을 가져 오는 경우 :

    $result = getStringBetweenDelimiters($table, '<tr>', '</tr>', true);
    
  25. ==============================

    25.tonyspiro에서 최고의 솔루션을 얻었습니다.

    tonyspiro에서 최고의 솔루션을 얻었습니다.

    function getBetween($content,$start,$end){
       $r = explode($start, $content);
       if (isset($r[1])){
           $r = explode($end, $r[1]);
           return $r[0];
       }
       return '';
    }
    
  26. ==============================

    26.알레한드로의 대답이 향상되었습니다. $ start 또는 $ end 인수는 비워 둘 수 있으며 문자열의 시작 또는 끝을 사용합니다.

    알레한드로의 대답이 향상되었습니다. $ start 또는 $ end 인수는 비워 둘 수 있으며 문자열의 시작 또는 끝을 사용합니다.

    echo get_string_between("Hello my name is bob", "my", ""); //output: " name is bob"
    
    private function get_string_between($string, $start, $end){ // Get
        if($start != ''){ //If $start is empty, use start of the string
            $string = ' ' . $string;
            $ini = strpos($string, $start);
            if ($ini == 0) return '';
            $ini += strlen($start);
        }
        else{
            $ini = 0;
        }
    
        if ($end == '') { //If $end is blank, use end of string
            return substr($string, $ini);
        }
        else{
            $len = strpos($string, $end, $ini) - $ini; //Work out length of string
            return substr($string, $ini, $len);
        }
    }
    
  27. ==============================

    27.나는 이것을 수년간 사용해 왔으며 잘 작동한다. 아마 더 효율적으로 만들 수 있지만

    나는 이것을 수년간 사용해 왔으며 잘 작동한다. 아마 더 효율적으로 만들 수 있지만

    grabstring ( "테스트 문자열", "", "", 0)은 테스트 문자열을 반환합니다. grabstring ( "테스트 문자열", "테스트", "", 0)은 문자열을 반환합니다. grabstring ( "테스트 문자열", "s", "", 5)는 문자열을 반환합니다.

    function grabstring($strSource,$strPre,$strPost,$StartAt) {
    if(@strpos($strSource,$strPre)===FALSE && $strPre!=""){
        return("");
    }
    @$Startpoint=strpos($strSource,$strPre,$StartAt)+strlen($strPre);
    if($strPost == "") {
        $EndPoint = strlen($strSource);
    } else {
        if(strpos($strSource,$strPost,$Startpoint)===FALSE){
            $EndPoint= strlen($strSource);
        } else {
            $EndPoint = strpos($strSource,$strPost,$Startpoint);
        }
    }
    if($strPre == "") {
        $Startpoint = 0;
    }
    if($EndPoint - $Startpoint < 1) {
        return "";
    } else {
            return substr($strSource, $Startpoint, $EndPoint - $Startpoint);
    }
    

    }

  28. ==============================

    28.

    function strbtwn($s,$start,$end){
        $i = strpos($s,$start);
        $j = strpos($s,$end,$i);
        return $i===false||$j===false? false: substr(substr($s,$i,$j-$i),strlen($start));
    }
    

    용법:

    echo strbtwn($s,"<h2>","</h2>");//<h2>:)</h2> --> :)
    
  29. ==============================

    29.'/에스'

    '/에스'

    function getStrBetween($left, $right, $in)
    {
        preg_match('/'.$left.'(.*?)'.$right.'/s', $in, $match);
        return empty($match[1]) ? NULL : $match[1];
    }
    

    이 시도 ;)

  30. ==============================

    30.

    echo explode('/', explode(')', $string)[0])[1];
    

    '/'를 첫 번째 문자 / 문자열로 바꾸고 ')'를 끝 문자 / 문자열로 대체하십시오. :)

  31. from https://stackoverflow.com/questions/5696412/how-to-get-a-substring-between-two-strings-in-php by cc-by-sa and MIT license