【PHP】下らねぇ質問はここに書き込みやがれ 15 (47レス)
1-

29: 前スレ 947 (ワッチョイ 6274-erF6) 2024/11/09(土)01:35 ID:k7Zpjetb0(1) AAS
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さん!!!
1-
あと 18 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.002s