[表示 : 全て 最新50 1-99 2ch.scのread.cgiへ]
Update time : 08/15 09:33 / Filesize : 74 KB / Number-of Response : 93
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【PHP】下らねぇ質問はここに書き込みやがれ 15



29 名前:前スレ 947 mailto:sage [2024/11/09(土) 01:35:17.88 ID:k7Zpjetb0.net]
NGスレ06 にお返事を書いてましたが連投規制なのか続きを書けなくなりました
agree.5ch.net/test/read.cgi/mango/1715675838/334-n

書けない間についに問題の核心部分を突き止められました!
原因は oniguruma で廃止された onig_init(); を php_mbregex.c で使っていたことでした
github.com/php/php-src/blob/84400eefbb6f09ca7de971f49a86ab26520dfff3/ext/mbstring/php_mbregex.c#L115

PHPを知らない私は PHP_MINIT_FUNCTION(mb_regex) の MINI の部分を見て

「これはバージョン番号が小さい(=古い) oniguruma を使うときのものだな、きっと」

と思ってしまったのが大間違いでした。ググったところ、この関数は
「モジュールがロードされたときに最初に呼び出される関数」だそうです.....(T_T)

ということで新しい初期化関数の onig_initialize() を使った書き方に直したところ、
(*FAIL) や (*SKIP) がPHP上で正常に動作しました

onig_initialize() ※ これは引数が2つ必要なので注意です
github.com/kkos/oniguruma/blob/f6723fd940b993b39b1535f71c8695867a5e92d1/doc/API.ja#L6

onig_initialize() 周りのコ-ドは oniguruma/sample/callout.c からそのままコピペしました
github.com/kkos/oniguruma/blob/f6723fd940b993b39b1535f71c8695867a5e92d1/sample/callout.c#L189

こんなことで2週間もスレを占領してしまってすみませんでした..
超優秀な方には感謝感謝です、他の方もありがとうございました! とても勉強になりました!

良かったら>>23 さんにも教えてあげて下さい、がんばれ23さん!!!






[ 続きを読む ] / [ 携帯版 ]

全部読む 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<74KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef