ハローワールドイヌネコヤギヘビカニブタウシ
ヤギ
カニ
ヘビ
ソース
require_once 'StringUtil.php'; $str="ハローワールドイヌネコヤギヘビカニブタウシ"; $s1="ヤギ"; $s2="カニ"; $util=new StringUtil(); $s3=$util->markInner($str,$s1,$s2); echo s3;
StringUtil.php
class StringUtil{ /** * 2つの囲み文字に挟まれた文字列を取得する * @param $str 対象文字列 * @param $s1 囲み文字1 * @param $s2 囲み文字2 */ public function markInner($str,$s1,$s2){ $s_r=$this->stringRight($str,$s1); $s=$this->stringLeft($s_r,$s2); return $s; } /** * 左から印文字を探し、見つかった場所から左側の文字列を返す。(印文字は含めず) * 検索文字列が存在しない場合は、対象文字列をそのまま返す。 * 検索文字列が先頭にあった場合も、対象文字列をそのまま返す。 * @param $str 対象文字列 * @param $mark 印文字列 * @return string */ function stringLeft($str,$mark){ $a=mb_strpos($str,$mark,0,'utf8'); if(!isset($a)){return $str;} $len=mb_strlen($str,'utf8'); $rtn=mb_substr($str,0,$a,'utf8'); return $rtn; } /** * 左から印文字を探し、見つかった場所から右側の文字列を返す。(印文字は含めず) * 検索文字列が存在しない場合は、対象文字列をそのまま返す。 * 検索文字列が先頭にあった場合も、対象文字列をそのまま返す。 * @param $str 対象文字列 * @param $mark 印文字 * @return string */ function stringRight($str,$mark){ $a=mb_strpos($str,$mark,0,'utf8'); if(!isset($a)){return $str;} $len=mb_strlen($str,'utf8'); $m_l=mb_strlen($mark,'utf8'); $rtn=mb_substr($str,$a+$m_l,$len,'utf8'); return $rtn; } }