2011-11-04 4 views
0

본문이 있습니다.두 부분 문자열 사이의 문자열을 찾는 방법은 무엇입니까?

\ CF1 I (웡 V Tenneco 사 (1985) 39 Cal.3d 126 135 216 Cal.Rptr 412 702 570 P.2d.] \;.. 크 뇌델 V 크 뇌델 (1975) 14 Cal.3d 752, 765, fn. 15 [122 Cal.Rptr. 521, 537 P.2d 353]. \ cf0 \ i0이 접근법은 오래 전에 법원 Carducho가 법원 에 대해 설명했다. 외국법의 적용이 정의의 원칙, 어떤 좋은 유행 개념의 어떤 보편적 인 개념을 위반하지 않으면 외국의 행동의 원인을 강요하기를 거부하지 않는다. "어떤 평범한 일상의 깊은 뿌리깊은 전통. \ cf1 \ i (Loucks v. Standard Oil Co. (1918) 224 NY 99, 111 [120 NE 198, 202]) \ cf0 \ i0 캘리포니아 사건, \ cf1 \ i Bryant v. Mead (1851) 1 칼. 441 \ 여기 I0

\ (CF0) : 나는

$1st = "\cf1\i"; 
$2nd = "\cf0\i0"; 

이 두 문자열이있다. 이 텍스트는 동적이지만 $1st으로 시작하고 $2nd으로 끝나는 문자열을 찾아야하며이 두 부분 문자열이 몇 번 나타날지는 알 수 없습니다.

내가이 짓 : $between=substr($str, strpos($str, $1st) + 6, strpos($str, $2nd) - strpos($str, $1st) + 1);

을하지만 난 첫 번째 문자열을 제공합니다.

$1st으로 시작하고 $2nd으로 끝나는 모든 문자열을이 텍스트에서 어떻게 가져올 수 있습니까?

+0

* 내 숙제를하시기 바랍니다 ... *> 아니, 쇼 당신은 시도 코드 및 위치를 실패했습니다. -1 –

답변

1

에서 : http://www.justin-cook.com/wp/2006/03/31/php-parse-a-string-between-two-strings/

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) 
+0

답장을 보내 주셔서 감사합니다. 그러나 내가 "[태그]"와 "[/ 태그]"를 내가 원할 것 인 것과 같은 텍스트에서 하나 이상을 찾고 싶다면. – Moumita

+0

잠시 후에이 함수를 작성했지만 지금은 소스 코드가 없습니다. 이 함수를 쉽게 수정하여 검색을 계속하고 결과 배열을 반환 할 수 있습니다. – Brad

0

난 그냥 코드를 수정하고 answere를 찾을 수 있습니다. 여기에 내 코드 :

$fullstr = "this is my [tag]dog[/tag].this is my [tag]this is my dog[/tag].this is my [tag]this is my dog[/tag]"; 
$start = "[tag]"; 
$end = "[/tag]"; 

    $first = substr_count($fullstr, $start); 
    $second = substr_count($fullstr, $end); 

    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); 
    } 


    $i=0; 

    while($i<=$first) 
    { 
     $occur = strpos($fullstr, $val5, $i); 
     echo $between = get_string_between($fullstr, $val7, $val5); 

     $fullstr= substr($fullstr, $occur, 100000); 

    $i++; 
    } 
0

사용 :

<?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)); 
} 

?> 
관련 문제