【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。 番目指定は 0番目、1番目、2番目、… というように0以上の整数とします。 想定しない値の例外処理はしていません。 strpos() を使う strpos() の第3引数 $offset なんて滅多に出番ないと思ってたけど、こういう使い方ができるとは・・・ function strpos_n($str, $needle, $n = 0) { $offset = 0; $len = strlen($needle); while ($n-- >= 0 && ($pos = strpos($str, $needle, $offset)) !== false) { $offset = $pos + $len; } return $pos; }