Возврат сегмента строки на основе строк - PullRequest
1 голос
/ 26 августа 2010

Как бы вы вернули часть строки на основе содержимого строки в php.В отличие от substr () и связанных с ними функций, где вы используете целочисленную длину

Так что, если нам дается такая строка here is a nice string that is being used as an example

Как мы можем вернуть такую ​​строку

nice string

Каким-то образом мы должны передать функции a и that, чтобы она знала начальную и конечную точку.Он найдет первый a, а затем начнет отслеживать символы, затем, когда он найдет that, он остановится и вернется.

Для ясности: мы знаем содержимое исходной строки ...и аргументы отправлены.

Ответы [ 2 ]

2 голосов
/ 26 августа 2010

Вы также можете использовать регулярные выражения с 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";

?>
2 голосов
/ 26 августа 2010

Используйте эту функцию:

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
...