2011-02-15 76 views
2

我有一個像something here blah bla <b>tomato</b> something else kasjd ajsdPHP呼應

從這個「大」的字符串我試圖提取tomato

基於將字符串的大字符串中的位置置於目標字符串的左側和右側,用什麼函數來完成此操作?

所以像我有:

start: "bla <b>" 
end: "</b> some" 

,我想要的是他們之間的大串...

回答

1

使用此功能:在鍵盤

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

echo get_string_between(
    'something here blah bla <b>tomato</b> something else kasjd ajsd', 
     'bla <b>', 
     '</b> some' 
); 

See it working here。如果有多個「在你的字符串會給你他們

0
$things = split("<[/]?b>", $string); 

這將返回的任何一個數組其間XXX即。

0

@ David19801:如果「關鍵詞」你想提取永遠是相同的,是已知的,爲什麼不

$pieces = explode("tomato", $bigstring); 
$left = $pieces[0]; 
$right = $pieces[1]; 
+0

有時,它是一個數字,可以頻繁變化。我只知道它的左右是什麼... – David19801 2011-02-15 12:03:19