Unicode support(MAIN Branch)
この辺とか見てて(ようやく)気がついたのですが、ICU周りの実装が入ってるよぅ。
ただ、随所に「IS_UNICODE」の判定処理が入っているのが涙を誘います。
後、本件とは(全然)関係ありませんが(結構前から)strstr関数とstristr関数に「[, bool part]」パラメータが追加されてるんですね(1・2)。今のところ、MAIN Branchだけみたいですが。
/* {{{ proto string strstr(string haystack, string needle[, bool part]) Finds first occurrence of a string within another */ /* {{{ proto string stristr(string haystack, string needle[, bool part]) Finds first occurrence of a string within another, case insensitive */
このパラメータを有効にすると「最初に現れる場所から文字列の終わりまでを返す」のではなくて「最初に現れる場所までの文字列を返す」という動作になるようですが。
一番最後の動作は理解できん。全部返せばいいじゃない。。。バグなのか?
<?php $A = "ABCDEFabcdef"; var_dump( strstr( $A, "F" ) ); var_dump( strstr( $A, "F", true ) ); var_dump( stristr( $A, "F" ) ); var_dump( stristr( $A, "F", true ) ); ?> 結果 ---- string(7) "Fabcdef" string(5) "ABCDE" string(7) "Fabcdef" string(5) "abcde"
mb_strstr関数とmb_stristr関数は実装したいので、参考にしよっと。