ハローワールドイヌネコヤギヘビカニブタウシ
ヤギ
カニ
ヘビ
ソース
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;
}
}