- 963 名前:デフォルトの名無しさん mailto:sage [2024/10/23(水) 22:17:15.79 ID:/9Lix2oc0.net]
- >>962
いや全く謝る必要はない その辺まで行ってる時点で大したもんだし、よく言われてる「報告」についても、君はよく出来てるよ > oniguruma は各正規表現パーツごとに有効、無効を切り替えられる仕様になって > いるのですが、oniguruma を呼び出す php-mbstring 側で (?W) や (*FAIL) が > 有効にされていない可能性が高いと考えています なるほど、これを知ってたから最初から無効化を疑ってたわけね 俺は知らなかったから、一般論で答えてしまったが 正規表現の場合は互換性が問題になるから一々細かくやらないと駄目なのかもね > 正規表現ルールを "Oniguruma" と指定しないと使えません これは微妙にちと違っていて、あの書き方だとただ単にフラグだから、C的にありがちなのは、以下α (最近使ってないなら文法間違ってるかもだが) 多少行儀のいい場合:α #define ONIG_SYN_OP2_OPTION_ONIGURUMA 0x04000000 // oniguruma内 onigSyntaxType.op2 |= ONIG_SYN_OP2_OPTION_ONIGURUMA; // php_mgstring内 あるいはドベタに:β onigSyntaxType.op2 |= 0x40000000; // php_mbstring内 "Oniguruma"指定の場合は、多分:γ OrigSyntaxType Oniguruma = {0xfff7d556, 0x47eb7bd2, 0x87a00bdb}; // oniguruma内 OrigSyntaxType origSyntaxType = Oniguruma; // php_mbstring内 要するにビットを立ててるだけなので、op2の[30]を立ててしまえば使えるようになる Oniguruma指定は一番手抜きが出来て楽だが、 php_mbstringの機能追加タイミングがOnigurumaのバージョンアップと同期してしまう だから互換性を重視しつつ、必要なタイミングで上位機能を取り込みたい場合は、普通はαにする そして結果的にOniguruma指定と同じになる事を(長期的に)目指す
|

|