2010-08-26 72 views
1

如何根据php中的字符串内容返回部分字符串。不像在您使用的整数长度基于字符串的返回字符串段

所以,如果我们得到这样 here is a nice string that is being used as an example

串SUBSTR()和相关职能,我们怎么能回到这样

nice string

不知何故字符串我们必须通过功能athat,以便知道起点和终点。它会找到第一个a,然后开始跟踪字符,然后当它发现that它将停止并返回。

要清楚:我们知道原始字符串的内容......以及发送的参数。

回答

2

使用此功能:

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

$input = 'here is a nice string that is being used as an example'; 
$output = get_string_between($input, 'a', 'that'); 
echo $output; //outputs: nice string 
+0

此打印 '好串',但它是它应该是什么?返回字符串应该是'nice string' - 没有空格。 – vtorhonen 2010-08-26 10:35:33

+0

@vtorhonen,为此,你可以使用'get_string_between($ input,'a','that');' – shamittomar 2010-08-26 11:18:08

2

你可以使用正则表达式也有preg_match

<?php 

function get_string_between($string,$start,$end) { 
    preg_match("/\b$start\b\s(.*?)\s\b$end\b/",$string,$matches); 
    return $matches[1]; 
} 

$str = "here is a nice string that is being used as an example"; 
print get_string_between($str,"a","that")."\n"; 

?>