文字列内から指定の開始文字から終了文字までの間の文字を取得するphp



phpの文字処理関連の関数で、指定開始文字列から指定終了文字列との間の文字を
取得できる関数が無かったので簡単な関数を作って見ました。
 

文字列間の文字取得関数と使用例

(もっと良い記述も出来るかと思いますが)

$html_buf="abcdefghijklmn";
$start_buf="cde";
$end_buf="lm";

//文字列間の文字取得関数呼び出し
$re_mozi = html_cut_syutoku($html_buf,$start_buf,$end_buf,0);

print $re_mozi;

// $html_buf:対象の文字列
// $start_buf:開始文字列
// $end_buf:終了文字列
// $int_positon_cnt:対象文字列内の取得開始位置
function html_cut_syutoku($html_buf, $start_buf, $end_buf, $int_positon_cnt){

	if(strstr($html_buf, $start_buf)){
		$srt_position = strpos($html_buf, $start_buf, $int_positon_cnt);
		$srt_position = $srt_position + strlen($start_buf);
		$end_position = strpos($html_buf, $end_buf, $srt_position);
		
		$result_buf = substr($html_buf, $srt_position, $end_position-$srt_position);
	}else{
		$result_buf = "";
	}
	
	return $result_buf;
}

 
出力結果
cdefghijklm
 
文字列検索(strstr、strpos)や文字列分割(strpos)関数を組み合わせて使用してます。
有りそうで無く、結構使う機会は多々あります。