是否有PHP函数来查找中间字符串?

时间:2012-04-13 17:36:51

标签: php string strstr

好的明确生病举个例子

$email  = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // prints @example.com

$user = strstr($email, '@', true); // As of PHP 5.3.0
echo $user; // prints name

正如它所说,它使用true打印'@'之前的内容,并使用空白打印@

之后的内容

我正在寻找一个函数来打印@本身,给它2个字符串并抓住它们之间的内容

像这样

  $string= 'someXthing';
  $tograb = phpfunction("some","thing");
  echo $tograb; // should be printing X

^这不起作用,我只是写它来解释

3 个答案:

答案 0 :(得分:1)

我不知道这样做的本机函数,但你可以使用正则表达式

$string= 'someXthing';
preg_match("/some(.*)thing/",$string,$matches);
var_dump($matches[1]);

详细了解preg_match

答案 1 :(得分:1)

来自互联网

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

Original code

答案 2 :(得分:0)

对于您所说的示例,您可以使用strpos打印X,如下所示:

$string = 'someXthing';

$start = strpos($string, "some") + strlen("some");
$end = strpos($string, "thing", $start);
$tograb = substr($string, $start, $end - $start);

echo $tograb;

和X将被打印。