2011-11-04 136 views
0

我有一个文本。如何在两个子串之间找到一个字符串?

\ CF1 \ I(黄v天纳克公司(1985)39 Cal.3d 126,135 [216 Cal.Rptr 412,702 P.2d 570。];马铃薯丸子v马铃薯丸子(1975 )14 Cal.3d 752, 765,fn.15 [122 Cal.Rptr。521,537 P.2d 353]。)\ cf0 \ i0这种方法 很早以前由Cardozo法官阐明,他解释说法院 将不拒绝执行外国诉讼原因,除非 适用“外国法律”将违反一些基本的正义原则,一些流行的良好道德观念,一些普遍的根深蒂固的传统观念。 \ 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 \ CF0 \ I0

这里:我有

$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

感谢您的回复。但如果我想在不同的文本中找到那些“[tag]”和“[/ tag]”,而不是我需要做的。 – 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)); 
} 

?> 
相关问题