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