ます’s Blog - どうでもいい記事100選

どうでもいい記事100選

Unicode support(MAIN Branch)

このとか見てて(ようやく)気がついたのですが、ICU周りの実装が入ってるよぅ。
ただ、随所に「IS_UNICODE」の判定処理が入っているのが涙を誘います。
後、本件とは(全然)関係ありませんが(結構前から)strstr関数とstristr関数に「[, bool part]」パラメータが追加されてるんですね()。今のところ、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関数は実装したいので、参考にしよっと。