In this post we will show you how to get substring between two strings in PHP.
we will show you different method for parse a string between two strings and How to extract content between two delimiters using PHP.
Method – 1
By usin get_between_data function, we can find substring between start and end.
in this function you have to pass start and end data and it will give you substring result.
function get_between_data($string, $start, $end)
{
$pos_string = stripos($string, $start);
$substr_data = substr($string, $pos_string);
$string_two = substr($substr_data, strlen($start));
$second_pos = stripos($string_two, $end);
$string_three = substr($string_two, 0, $second_pos);
// remove whitespaces from result
$result_unit = trim($string_three);
// return result_unit
return $result_unit;
}
$input_str = "test string start data end test string.";
$unit = get_between_data($input_str, 'start', 'end');
echo $unit; // Outputs: "data"
Method – 2
By usin explode method we conver string in to array by “test” separator. so it will convert in to array and you abel to get thet data.
$input_str = "Xdata test HD01 test 1data";
$result_array = explode('test',$input_str);
print_r($result_array);
echo $result_array[1];
Method – 3
By usin this preg_replace and regex can get data between string. In this method we pass start and end data to get substring.
$input_str = "Xdata test HD01 test 1data";
$between = preg_replace('/(.*)test(.*)test(.*)/sm', '\2', $input_str);
echo $between;
Method – 4
By usin get_between_data function, we can find substring between start and end.
in this function you have to pass start and end data and it will give you substring result.
function get_between_data($input_str,$start,$end){
$result_array = explode($start, $input_str);
if (isset($result_array[1])){
$result_array = explode($end, $result_array[1]);
return $result_array[0];
}
// result null
return '';
}
$input_str = "Find data substring between two strings !!";
$start = "Find data ";
$end = " two strings !!";
$output_result = get_between_data($input_str,$start,$end);
echo $output_result;
Method – 5
By usin this preg_replace and regex can get data between string. In this method we pass start and end data to get substring.
$input_str = "[userid=256][userid=345]";
preg_match_all("/\[userid=([0-9]+)\]/", $input_str, $matches_res);
$modids_array = $matches_res[1];
foreach( $modids_array as $userid )
{
echo $userid."\n";
}