[PHP-dev 1222] Re: [PHP-doc 606] Re: mb_strpos

View: New views
20 Messages — Rating Filter:   Alert me  
< Prev | 1 - 2 | Next >

Parent Message unknown [PHP-dev 1222] Re: [PHP-doc 606] Re: mb_strpos

by Tadashi Jokagi-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

      上鍵です.こんにちは.

#マニュアルの話じゃなくなってしまいますが

TAKAGI Masahiroさんの<m3irr5x8fw.wl%matakagi@...>から
>print mb_strrpos($theString, "A") . "\n";   // => 9
>print strrpos($theString, "A") . "\n";      // => 9
>print mb_strrpos($theString, "ABC") . "\n"; // => 4
>print strrpos($theString, "ABC") . "\n";    // => 9 (not 4!)

      仕様が違うって気づきませんでした.これってmb_strpos のバグだ
    と思うのですが,いかがでしょうか? というのはマルチバイト文字対
    応だとしても ASCII 文字を突っ込んだら同じ値が帰ってこないとまず
    いと思います.というのは

http://jp.php.net/manual/ja/ref.mbstring.php#mbstring.overload

    で「元の関数」と「オーバーロードする関数」に上位互換性が無いか
    らです.
--
----.----1----.----2----.----3----.----4----.----5----.----6----.----7
Tadashi Jokagi/Setagaya city mailto:elf@...
YokukitanaII http://elf.no-ip.org/
Yokukitablog http://blog.poyo.jp/
Yokukitawiki http://wiki.poyo.jp/
_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

Parent Message unknown [PHP-dev 1223] Re: [PHP-doc 612] Re: mb_strpos

by Seiji Masugata :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

桝形です。

> 1.mb_strrpos() は PHP4 ではバグってる。
> 2.(ちょっと無理があるけど(^^;) (1) を仕様と考えるなら、マニュア
>   ルに PHP4 と PHP5 じゃ動作が違うよって書く。

正解は2だと思うのですが。

(PHP4での)strrpos関数とmb_strrpos関数は仕様が元々違っています。
(PHP3での)strrpos関数とmbstrrpos関数も同様に、です。

http://jp2.php.net/strrpos

注意:  PHP 5.0.0 以降、needle  は 1 文字以上の文字列を指定可能です。

とあるので(PHP5から)strrposの仕様が変わっています。
(mb_strrpos関数と同じ仕様になった)


PHP4で、

print strrpos($theString, "ABC") . "\n";

と書いてるような(マニュアルをよく読んでいない)人は、PHP5にバージョン
UPした途端にアプリの挙動が変わってしまうのは避けられませんね。

逆に、mbstring.func_overloadで関数をオーバーロードして運用している
場合は助かると思いますけど。




仮に1だとしても、今からの修正は間違いなく無理だと思います。
(関数の挙動が変わってしまうので)

PHP4(のしかも途中から)だけ、仕様が変わってしまうのも変な話です。
マニュアルに注意書きを入れるしかないのかな、と思います。

mbstring.func_overloadの項目なのか、mb_strrpos関数の項目なのか、は
微妙なトコだと思いますが。



もっと突っ込んだ事を言うと「mbstring.func_overload」自体、無茶な
仕様だと思っています。状況によっては便利な場合もありますが。

(似たような機能ですが、目的と)動作が異なる関数をオーバーロード
している時点で、上位互換性も下位互換性もある訳が無い、というのが
自分の見解です。


--
Seiji Masugata <s.masugata@...>

_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1224] Re: [PHP-doc 612] Re: mb_strpos

by TAKAGI Masahiro-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

高木です。

At Sun, 26 Feb 2006 13:49:30 +0900,
Seiji Masugata wrote:

>
> > 1.mb_strrpos() は PHP4 ではバグってる。
> > 2.(ちょっと無理があるけど(^^;) (1) を仕様と考えるなら、マニュア
> >   ルに PHP4 と PHP5 じゃ動作が違うよって書く。
>
> 正解は2だと思うのですが。
>
> (PHP4での)strrpos関数とmb_strrpos関数は仕様が元々違っています。
> (PHP3での)strrpos関数とmbstrrpos関数も同様に、です。
>
> http://jp2.php.net/strrpos
>
> 注意:  PHP 5.0.0 以降、needle  は 1 文字以上の文字列を指定可能です。
>
> とあるので(PHP5から)strrposの仕様が変わっています。
> (mb_strrpos関数と同じ仕様になった)
>
そのとおりでしょうね。
PHP 5 のソースアーカイブに含まれる「README.PHP4-TO-PHP5-THIN-CHANGES」
というファイルの先頭にも、しっかりこのことが書かれています。

> 1. strrpos() and strripos() now use the entire string as a needle. Be aware
>    that the existing scripts may no longer work as you expect.
>
>    EX :
>    <?php
>    var_dump(strrpos("ABCDEF","DEF"));
>    var_dump(strrpos("ABCDEF","DAF"));
>    ?>
>
>    Will give you different results. The former returns 3 while the latter
>    returns false rather than the position of the last occurrence of 'D'.
>    The same applies to strripos().

--
高木 正弘 mailto:matakagi@...
_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1225] Re: [PHP-doc 612] Re: mb_strpos

by Seiji Masugata :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

桝形です。

> > > 2.(ちょっと無理があるけど(^^;) (1) を仕様と考えるなら、マニュア
> > >   ルに PHP4 と PHP5 じゃ動作が違うよって書く。
> >
> > 正解は2だと思うのですが。
> >
> > (PHP4での)strrpos関数とmb_strrpos関数は仕様が元々違っています。
> >
> > http://jp2.php.net/strrpos
> >
> > 注意:  PHP 5.0.0 以降、needle  は 1 文字以上の文字列を指定可能です。
> >
> > とあるので(PHP5から)strrposの仕様が変わっています。
> > (mb_strrpos関数と同じ仕様になった)
>
> そのとおりでしょうね。
> PHP 5 のソースアーカイブに含まれる「README.PHP4-TO-PHP5-THIN-CHANGES」
> というファイルの先頭にも、しっかりこのことが書かれています。
> > 1. strrpos() and strripos() now use the entire string as a needle. Be aware
> >    that the existing scripts may no longer work as you expect.


http://jp2.php.net/strrpos

よく見てみると、第3引数([, int offset])が追加されています。
しかし、mb_strrpos関数では、

http://jp2.php.net/mb_strrpos

int mb_strrpos ( string haystack, string needle [, string encoding] )

と、なっているので、mbstring.func_overloadでstrrpos関数をオーバー
ロードした時に、引数の意味合いが変わってしまいますね。

needleの仕様はともかく、offsetの動作が変わるのは。。。という気がします。


mbstring.func_overloadを仕様として残すのであれば、mb_strrpos関数側で
何かしらの対応は必要だと思います。

--
Seiji Masugata <s.masugata@...>

_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1226] Re: [PHP-doc 617] Re: Re: Re: mb_strpos

by Tadashi Jokagi-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

      上鍵です.こんにちは.
      なるほど.非常にややこしい話を掘り起こしてしまった感じで困り
    ました(苦笑 とりあえず PHP 5 からは第 3 引数(とマルチバイト処理)
    を除きほぼ互換性はある,しかし依然 override には問題がる(問題が
    あることが前提の仕様で OK)ということですよね.

--
----.----1----.----2----.----3----.----4----.----5----.----6----.----7
Tadashi Jokagi/Setagaya city mailto:elf@...
YokukitanaII http://elf.no-ip.org/
Yokukitablog http://blog.poyo.jp/
Yokukitawiki http://wiki.poyo.jp/
_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1268] Re: [PHP-doc 612] Re: mb_strpos

by Seiji Masugata :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

桝形です。

しばらく放置していた以下の件ですが、そろそろ何とかしたいと
思っています。

次のリリースは「5.2.0」ですので、タイミング的には問題無いと
思います。


今の状態では「mbstring.func_overload」を利用しなければ実質的に
問題はありませんが、mbstringで提供している文字列関数はstring関数
のマルチバイト対応版だと思っているので、引数は併せておいた方が
よいように思えます。



追随できていなかったのが原因なので、潔く「mb_strrpos」関数の
引数を「strrpos」関数の引数に併せたいと思っていますが、妙案
ありましたら、教えて下さい。



> > そのとおりでしょうね。
> > PHP 5 のソースアーカイブに含まれる「README.PHP4-TO-PHP5-THIN-CHANGES」
> > というファイルの先頭にも、しっかりこのことが書かれています。
> > > 1. strrpos() and strripos() now use the entire string as a needle. Be aware
> > >    that the existing scripts may no longer work as you expect.
>
>
> http://jp2.php.net/strrpos
>
> よく見てみると、第3引数([, int offset])が追加されています。
> しかし、mb_strrpos関数では、
>
> http://jp2.php.net/mb_strrpos
>
> int mb_strrpos ( string haystack, string needle [, string encoding] )
>
> と、なっているので、mbstring.func_overloadでstrrpos関数をオーバー
> ロードした時に、引数の意味合いが変わってしまいますね。
>
> needleの仕様はともかく、offsetの動作が変わるのは。。。という気がします。
>
>
> mbstring.func_overloadを仕様として残すのであれば、mb_strrpos関数側で
> 何かしらの対応は必要だと思います。

どんな結果に転がっても痛手を負うのは間違いないですが。。。

--
Seiji Masugata <s.masugata@...>

_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1269] Re: [PHP-doc 612] Re: mb_strpos

by Tomoyuki Asakawa :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

あさかわ

> 次のリリースは「5.2.0」ですので、タイミング的には問題無
> いと
> 思います。

下記が出来るのならいんだけど。そうじゃなければ、6.xまで
まった方が。

> 今の状態では「mbstring.func_overload」を利用しなければ実
> 質的に
> 問題はありませんが、mbstringで提供している文字列関数は
> string関数
> のマルチバイト対応版だと思っているので、引数は併せておいた方が
> よいように思えます。

問題として、大々的に表面化してないってことは、overloadして
ない人が多いのだと思う。
たぶん、mb系は、明示的につかってると思う。ねえ、上鍵さん
(笑)

> 追随できていなかったのが原因なので、潔く「mb_strrpos」関
> 数の
> 引数を「strrpos」関数の引数に併せたいと思っていますが、
> 妙案
> ありましたら、教えて下さい。

A:案 overloadされてるなら,  ( string haystack, string  
needle [, int offset] )
      overloadされてないなら、( string haystack, string needle  
[, string encoding] )
B:案 overloadされてるなら,  ( string haystack, string  
needle [, int offset] )
      overloadされてないなら、( string haystack, string needle  
[, string encoding [, int offset ]] )
C:案 overloadされてるなら,  ( string haystack, string  
needle [, int offset [, string encoding]] )
      overloadされてないなら、( string haystack, string needle  
[, string encoding [, int offset ]] )
D:案 第3引数の型が、intなら,  ( string haystack, string  
needle [, int offset] )
      第3引数の型が、stringなら、( string haystack,  
string needle [, string encoding] )
E:案 第3引数の型が、intなら,  ( string haystack, string  
needle [, int offset [, string encoding]] )
      第3引数の型が、stringなら、( string haystack,  
string needle [, string encoding [, int offset ]] )

なんてのはどうでしょう。
A案、B案はoverloadしてる場合はencoding指定して
ないだろうという想定



_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1270] Re: [PHP-doc 612] Re: mb_strpos

by Seiji Masugata :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

桝形です。

> 下記が出来るのならいんだけど。そうじゃなければ、6.xまで
> まった方が。

いつリリースされるか分からないバージョンまで問題を先送りする
のは(色んな意味で)厳しいのかと。。。

# いつ爆発するか分からない爆弾を抱え込んだ状態。


> 問題として、大々的に表面化してないってことは、overloadして
> ない人が多いのだと思う。

後、考えられるのが、第3引数を利用していない人が多い。
(mb_strrpos, strrpos共に)


> たぶん、mb系は、明示的につかってると思う。ねえ、上鍵さん
> (笑)

明示的につかってる、というのは第3引数をって事でしょうか。


> A:案 overloadされてるなら,  ( string haystack, string  
> needle [, int offset] )
>       overloadされてないなら、( string haystack, string needle  
> [, string encoding] )
> B:案 overloadされてるなら,  ( string haystack, string  
> needle [, int offset] )
>       overloadされてないなら、( string haystack, string needle  
> [, string encoding [, int offset ]] )
> C:案 overloadされてるなら,  ( string haystack, string  
> needle [, int offset [, string encoding]] )
>       overloadされてないなら、( string haystack, string needle  
> [, string encoding [, int offset ]] )
> D:案 第3引数の型が、intなら,  ( string haystack, string  
> needle [, int offset] )
>       第3引数の型が、stringなら、( string haystack,  
> string needle [, string encoding] )
> E:案 第3引数の型が、intなら,  ( string haystack, string  
> needle [, int offset [, string encoding]] )
>       第3引数の型が、stringなら、( string haystack,  
> string needle [, string encoding [, int offset ]] )

コレら全ては当初は考えていましたが、正直そこまでして救うべきか
ちょっと疑問視しています。

元々、真ん中のバージョンが上がった時点で互換性は保障できない
訳でして(元々追随できていなかったのが原因な訳で)。

ただ、mbstringを利用している全てのユーザーが第3引数を
利用しているのであれば検討する価値は凄くあると思います。

--
Seiji Masugata <s.masugata@...>

_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1271] Re: [PHP-doc 612] Re: mb_strpos

by Tomoyuki Asakawa :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

あさかわ
> いつリリースされるか分からないバージョンまで問題を先送りする
> のは(色んな意味で)厳しいのかと。。。
>
> # いつ爆発するか分からない爆弾を抱え込んだ状態。

たしかにそうですが、PHP-5は、i18のエイリアスがなく
なったり
それでなくても、PHP-4からの移行が難しいのですよ。

>> 問題として、大々的に表面化してないってことは、overload
>> して
>> ない人が多いのだと思う。
>
> 後、考えられるのが、第3引数を利用していない人が多い。
> (mb_strrpos, strrpos共に)
>

mb_ では、encoding指定をつかってると思う。

私は、php.iniで設定する派ですが。
php.iniでは、設定するベキではないという派閥もあるのです
その場合、encoding指定を直接してると思う。

ただ、その派閥は、overloadはしていないと思う、
oveloadする人は、外国版のソフトをつかう人だと思うから。


>
>> たぶん、mb系は、明示的につかってると思う。ねえ、上鍵さん
>> (笑)
>
> 明示的につかってる、というのは第3引数をって事でしょうか。

いえ、overloadしてないという意味。

>
> コレら全ては当初は考えていましたが、正直そこまでして救うべきか
> ちょっと疑問視しています。

まあそうなのだけど、余計な混乱させない方法があるならその方がいい
と思う
どんどん、PHPを使う人のレベルは下がってるのだから。

> ただ、mbstringを利用している全てのユーザーが第3引数を
> 利用しているのであれば検討する価値は凄くあると思います。

すべてではないでしょうけど、すこしでもいる可能性があったら
すくなくとも、mb_xxx直接の場合は、互換取るべきだと思う。
encoding指定が、ofsset指定に変わってしまったら
動作が明らかに変になるわけでして。
たぶん、usersに、繰り返し質問が来ると思う。

で、個人的には、overloadしてる人は
encoding指定は、してないと思う。

oveloadする人は、外国版のソフトをつかう人だと思うから。
自分で新規に書いてる人は、mb_xxをつかっているとおもう。

なので、oveloadしてるかしてないかで、引数をかえる方法がい
いと思っています。















_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1272] Re: [PHP-doc 612] Re: mb_strpos

by Tadashi Jokagi-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

      ぢょ〜@よくきたなです.

Tomoyuki Asakawaさんの「[PHP-dev 1269] Re: [PHP-doc 612] Re: mb_strpos」から
>問題として、大々的に表面化してないってことは、overloadして
>ない人が多いのだと思う。
>たぶん、mb系は、明示的につかってると思う。ねえ、上鍵さん
>(笑)

      そこで指定されるのは当てつけっぽいですが(苦笑 overload は最近
    は使用される場面は少なくなっていると思います.理由は下記の通り

    ・設定値次第で画像処理などバイナリ処理系で誤動作を起こす可能性が
      高くなる
    ・FAQ 的に紹介されるケースが少なくなった

>> 追随できていなかったのが原因なので、潔く「mb_strrpos」関
>> 数の
>> 引数を「strrpos」関数の引数に併せたいと思っていますが、
>> 妙案
>> ありましたら、教えて下さい。
>
>A:案 overloadされてるなら,  ( string haystack, string  
>needle [, int offset] )
>      overloadされてないなら、( string haystack, string needle  
>[, string encoding] )
>B:案 overloadされてるなら,  ( string haystack, string  
>needle [, int offset] )
>      overloadされてないなら、( string haystack, string needle  
>[, string encoding [, int offset ]] )
>C:案 overloadされてるなら,  ( string haystack, string  
>needle [, int offset [, string encoding]] )
>      overloadされてないなら、( string haystack, string needle  
>[, string encoding [, int offset ]] )
>D:案 第3引数の型が、intなら,  ( string haystack, string  
>needle [, int offset] )
>      第3引数の型が、stringなら、( string haystack,  
>string needle [, string encoding] )
>E:案 第3引数の型が、intなら,  ( string haystack, string  
>needle [, int offset [, string encoding]] )
>      第3引数の型が、stringなら、( string haystack,  
>string needle [, string encoding [, int offset ]] )
>
>なんてのはどうでしょう。
>A案、B案はoverloadしてる場合はencoding指定して
>ないだろうという想定

      overload される mb_strpos() 的な処理を通常の mb_strpos を 2 系統
    用意するのはだめでしょうか? 実際は

function mb_strpos() { ...}
function mb_strpos_overload(...) { mb_strpos( ...)}

    みたいな感じで.というか overload の処理を見ずにに書いていますが(苦笑

--
----.----1----.----2----.----3----.----4----.----5----.----6----.----7
Tadashi Jokagi/Shibuya city mailto:elf@...
YokukitanaII http://elf.no-ip.org/
Yokukita blog http://blog.poyo.jp/
Yokukita wiki http://wiki.poyo.jp/
_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1273] Re: [PHP-doc 612] Re: mb_strpos

by Tadashi Jokagi-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

      ぢょ〜@よくきたなです.
      overload は使用している人が少ないだろうという続きとして書き
    ます.

Tomoyuki Asakawaさんの「[PHP-dev 1271] Re: [PHP-doc 612] Re: mb_strpos」から
>> 後、考えられるのが、第3引数を利用していない人が多い。
>> (mb_strrpos, strrpos共に)
>>
>
>mb_ では、encoding指定をつかってると思う。
>私は、php.iniで設定する派ですが。
>php.iniでは、設定するベキではないという派閥もあるのです
>その場合、encoding指定を直接してると思う。

      いいえ.通常スクリプトで指定する場合,mb_internal_encoding() を
    指定するだけなので,基本的に関数毎のエンコーディング指定をする必
    要は一切ありません.例外として一時的に自体文字エンコーディングを
    変換なしに扱いたい場合は指定することもあると思います.こういう処
    理を書きたい場合,php.ini であろうがどういう初期設定を行ったかと
    しても関数で文字エンコーディングの指定をする場合はあるでしょう.

      また,よく見かけるのは「mbstring の動作がよくわからない」から
    全部の関数で文字エンコーディングの指定をする場合.これは php.ini
    で指定しようがしまいがやるようです.

>ただ、その派閥は、overloadはしていないと思う、
>oveloadする人は、外国版のソフトをつかう人だと思うから。

      どうなんでしょうね.overload しているソフトウェアは数十見てみた
    程度ではほとんど見かけません.

>で、個人的には、overloadしてる人は
>encoding指定は、してないと思う。
>
>oveloadする人は、外国版のソフトをつかう人だと思うから。
>自分で新規に書いてる人は、mb_xxをつかっているとおもう。

      上記通り一概に言えません.

--
----.----1----.----2----.----3----.----4----.----5----.----6----.----7
Tadashi Jokagi/Shibuya city mailto:elf@...
YokukitanaII http://elf.no-ip.org/
Yokukita blog http://blog.poyo.jp/
Yokukita wiki http://wiki.poyo.jp/
_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1274] Re: [PHP-doc 612] Re: mb_strpos

by Tadashi Jokagi-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

      ぢょ〜@よくきたなです.

Tomoyuki Asakawaさんの「[PHP-dev 1271] Re: [PHP-doc 612] Re: mb_strpos」から
>たしかにそうですが、PHP-5は、i18のエイリアスがなく
>なったり
>それでなくても、PHP-4からの移行が難しいのですよ。

      ちなみに i18n な関数は *PHP 4 の時点で* 正式関数群ではなく,
    2000 年に公開された PHP 4.0.6 で正式に mbstring が提供された歴史
    を考えるとPHP 5 への移行で *一般的に* はまるというポイントにはな
    りえないと思います.

#そりゃ由緒ただしき歴史のあるプロダクトはあてはまるでしょうけど 5 年
 以上前のままの実装で未だ…かつ PHP 5 へ移行を検討するほどのものって
 のは 10 パーセントもないと思います.

--
----.----1----.----2----.----3----.----4----.----5----.----6----.----7
Tadashi Jokagi/Shibuya city mailto:elf@...
YokukitanaII http://elf.no-ip.org/
Yokukita blog http://blog.poyo.jp/
Yokukita wiki http://wiki.poyo.jp/
_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1275] Re: [PHP-doc 612] Re: mb_strpos

by Tomoyuki Asakawa :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

あさかわ

On 2006/06/05, at 14:21, Tadashi Jokagi wrote:

>       ちなみに i18n な関数は *PHP 4 の時点で
> * 正式関数群ではなく,
>     2000 年に公開された PHP 4.0.6 で正式に  
> mbstring が提供された歴史
>     を考えるとPHP 5 への移行で *一般的に* は
> まるというポイントにはな
>     りえないと思います.

ところがね、PHP3で書いてあったものを、PHP4にする時、
i18nはそのままになっているというものを
何本かみたです。(自分のもあるし、人のもある)

_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1276] Re: [PHP-doc 612] Re: mb_strpos

by Tomoyuki Asakawa :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

あさかわ

>       また,よく見かけるのは「mbstring の動作がよくわか
> らない」から
>     全部の関数で文字エンコーディングの指定をする場合.これは  
> php.ini
>     で指定しようがしまいがやるようです.
>

という意味でも、encoding指定をしてる、よくわからない人の為
にも
既存の順序を替えてはだめでしょう。

>       どうなんでしょうね.overload しているソフトウェア
> は数十見てみた
>     程度ではほとんど見かけません.
>
>> で、個人的には、overloadしてる人は
>> encoding指定は、してないと思う。
>>
>> oveloadする人は、外国版のソフトをつかう人だと思うから。
>> 自分で新規に書いてる人は、mb_xxをつかっているとおもう。
>
>       上記通り一概に言えません.

overloadしてるソフトは、ほとんど無いという前提で
いたとしても、それは、外国ソフトの移植だろう。
自分で、新規に書いてる人は、mb_xxをつかってるだろうという。
意味です。

一概に言えないといってると、答えは収束しないです。

_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1277] Re: [PHP-doc 612] Re: mb_strpos

by KOYAMA Tetsuji :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

小山です。

On 6/5/06, Tomoyuki Asakawa <tom@...> wrote:
> oveloadする人は、外国版のソフトをつかう人だと思うから。
> 自分で新規に書いてる人は、mb_xxをつかっているとおもう。
>
> なので、oveloadしてるかしてないかで、引数をかえる方法がい
> いと思っています。

overload しているかどうかという外部要因で、その関数の動作が変わ
るのは私は好ましくないと思います。

基本は

int mb_strpos ( string haystack, string needle [, int offset [, string
encoding]] )

にしておいて、第4引数がない && 第3引数が文字列 という条件の場合
のみ、互換性のために

int mb_strpos ( string haystack, string needle, string encoding)

という動作をするというのはどうでしょうか。

引数の型チェックがないという PHP の柔軟性を生かすべきだと思います。

--
    小山哲志@ビート・クラフト
    koyama@...
    koyama@...
_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1278] Re: [PHP-doc 612] Re: mb_strpos

by Seiji Masugata :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

桝形です。

> >       ちなみに i18n な関数は *PHP 4 の時点で
> > * 正式関数群ではなく,
> >     2000 年に公開された PHP 4.0.6 で正式に  
> > mbstring が提供された歴史
> >     を考えるとPHP 5 への移行で *一般的に* は
> > まるというポイントにはな
> >     りえないと思います.

同意見で、PHP3からPHP5への移行はmbstring的には既に
サポート外という認識でいます。

http://ns1.php.gr.jp/pipermail/php-dev/2003-March/000730.html

サポート外というか、役割は充分に果たしたのかな、と。

--
Seiji Masugata <s.masugata@...>

_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1279] Re: [PHP-doc 612] Re: mb_strpos

by Seiji Masugata :: Rate this Message: