!extend::vvvvv:1000:512
!extend::vvvvv:1000:512
★スレ立て時 ↑ が3行以上になるようコピペ
PHPに関する質問スレです
前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 14
https://mevius.5ch.net/test/read.cgi/tech/1663659983/
次スレは>>980以降
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
探検
【PHP】下らねぇ質問はここに書き込みやがれ 15
1デフォルトの名無しさん (ワッチョイ 5b7b-vCJ4)
2024/10/29(火) 20:52:19.15ID:zqRlJI/002デフォルトの名無しさん (ワッチョイ fbe7-kvRr)
2024/10/30(水) 12:35:56.19ID:6wM0eSwC0 PHPで20桁の整数演算をしよう!
3デフォルトの名無しさん (ワッチョイ 1225-p9Y/)
2024/11/05(火) 13:23:35.70ID:nu4YBPFR0 GMPでも使ってろ
4デフォルトの名無しさん (ワッチョイ 617b-8+ss)
2024/11/06(水) 19:11:34.41ID:r48zHH+W0 遅れたが纏めて一応返しておく
(なお前後してる部分もあるので、まず全部読む方がいいかも
※はその時にはそう思ってたが、後になって違うと判明した部分
思考の過程を残した方が参考になると思うので残しておく)
> そのため、ここは一度戦略的に撤退し、次の好機をうかがうことにしました
この判断はあり、というか普通はそうする
理由は俺らプログラマにとっての資産=時間をかけて作ったもの=ソースコードであり、
自分のソースコ
ード=他の誰にも任せられず、『自分でやるしかない事に注力すべき』だから
onigurumaの新機能はいつか誰かが使えるようにしてくれるから、後回しでいい
典型的には既に回答されてるとおり、956,959でラップし、とりあえず自分のソースコ
ードを完成させてしまい、
その後やはり速度等で問題がある場合、
つまり自分で解決しないと先に進まない状況になって初めて今回のように自分で対応し、
その後ソースコ
ードを差し替える
だから最低限は「差し替えが簡単なソースコ
ードにしておく」事で、今回は自然とそうなるので問題はない
今回のような話は試行錯誤的で、
やってても終わりが見えないが、終わるときにはいきなり終わるので、
「もうちょっとで行けそう」的にズルズルと無限に時間を食う事はよくある
なので、一旦本筋に戻る、というのは正しい
ただ、(時間に余裕があるのなら)それでもやり続けるのも正しいが
出来ない≒多くの場合、何らかの技術/知識的に問題があるので出来ない、なので、
全方向的に首を突っ込むだけでも色々蓄積はしていく(とはいえ効率が悪いかもだが)
やれる事を繰り返してても慣れるだけで、本質的な部分では上達しない
(なお前後してる部分もあるので、まず全部読む方がいいかも
※はその時にはそう思ってたが、後になって違うと判明した部分
思考の過程を残した方が参考になると思うので残しておく)
> そのため、ここは一度戦略的に撤退し、次の好機をうかがうことにしました
この判断はあり、というか普通はそうする
理由は俺らプログラマにとっての資産=時間をかけて作ったもの=ソースコードであり、
自分のソースコ
ード=他の誰にも任せられず、『自分でやるしかない事に注力すべき』だから
onigurumaの新機能はいつか誰かが使えるようにしてくれるから、後回しでいい
典型的には既に回答されてるとおり、956,959でラップし、とりあえず自分のソースコ
ードを完成させてしまい、
その後やはり速度等で問題がある場合、
つまり自分で解決しないと先に進まない状況になって初めて今回のように自分で対応し、
その後ソースコ
ードを差し替える
だから最低限は「差し替えが簡単なソースコ
ードにしておく」事で、今回は自然とそうなるので問題はない
今回のような話は試行錯誤的で、
やってても終わりが見えないが、終わるときにはいきなり終わるので、
「もうちょっとで行けそう」的にズルズルと無限に時間を食う事はよくある
なので、一旦本筋に戻る、というのは正しい
ただ、(時間に余裕があるのなら)それでもやり続けるのも正しいが
出来ない≒多くの場合、何らかの技術/知識的に問題があるので出来ない、なので、
全方向的に首を突っ込むだけでも色々蓄積はしていく(とはいえ効率が悪いかもだが)
やれる事を繰り返してても慣れるだけで、本質的な部分では上達しない
5デフォルトの名無しさん (ワッチョイ 617b-8+ss)
2024/11/06(水) 19:12:32.98ID:r48zHH+W0 > php_mbregex.c の 473行目のエラー処理が実行されます
> PHP Warning: mb_ereg_replace(): mbregex compile err: undefined callout name in /home/user1/test.php on line 7
onigurumaがphp_mbsgringから見て正しく構成されているかをチェックしてるだけの様に見える
渡す正規表現のエンコードがphp_mbstring側(多分utf-8)と一致してるか等のチェックだと(この時点では)推測する
多分onigurumaのコンパイル時に指定出来るのではないかと(でもonigurumaもutf-8がデフォな気はするが)
という見当でonigurumaソースを見てみる
(なおソースコードは10/24にダウンロードしてた oniguruma-43a8c3f3daf263091f3a74019d4b32ebb6417093)
mbstring.c:472: onig_error_code_to_str(err_str, err_code, &err_info);
より、
php-8.3.12\ext\mbstring>grep -n -r onig_error_code_to_str * で出てこないので
oniguruma>grep -n -r onig_error_code_to_str * で(他多数だが)
src/regerror.c:293:onig_error_code_to_str(UChar* s, int code, ...)
oniguruma>grep -n -r "undefined callout name" * では
src/regerror.c:186: p = "undefined callout name"; break;
src/regerror.c:186付近を見ると ONIGERR_UNDEFINED_CALLOUT_NAME なので、
>grep -n -r ONIGERR_UNDEFINED_CALLOUT_NAME * すると(他多数だが)
src/regparse.c:1750: return ONIGERR_UNDEFINED_CALLOUT_NAME;
関数は get_callout_name_id_by_name なので中身を確認すると callout_name_find 結果がNULLの時だと分かる
src/regparse.c:1414: callout_name_find も確認すると、
・GlobalCalloutNameTable がnullか、
・onig_st_lookup_callout_name_table でNULLが返される時にこのエラー
> PHP Warning: mb_ereg_replace(): mbregex compile err: undefined callout name in /home/user1/test.php on line 7
onigurumaがphp_mbsgringから見て正しく構成されているかをチェックしてるだけの様に見える
渡す正規表現のエンコードがphp_mbstring側(多分utf-8)と一致してるか等のチェックだと(この時点では)推測する
多分onigurumaのコンパイル時に指定出来るのではないかと(でもonigurumaもutf-8がデフォな気はするが)
という見当でonigurumaソースを見てみる
(なおソースコードは10/24にダウンロードしてた oniguruma-43a8c3f3daf263091f3a74019d4b32ebb6417093)
mbstring.c:472: onig_error_code_to_str(err_str, err_code, &err_info);
より、
php-8.3.12\ext\mbstring>grep -n -r onig_error_code_to_str * で出てこないので
oniguruma>grep -n -r onig_error_code_to_str * で(他多数だが)
src/regerror.c:293:onig_error_code_to_str(UChar* s, int code, ...)
oniguruma>grep -n -r "undefined callout name" * では
src/regerror.c:186: p = "undefined callout name"; break;
src/regerror.c:186付近を見ると ONIGERR_UNDEFINED_CALLOUT_NAME なので、
>grep -n -r ONIGERR_UNDEFINED_CALLOUT_NAME * すると(他多数だが)
src/regparse.c:1750: return ONIGERR_UNDEFINED_CALLOUT_NAME;
関数は get_callout_name_id_by_name なので中身を確認すると callout_name_find 結果がNULLの時だと分かる
src/regparse.c:1414: callout_name_find も確認すると、
・GlobalCalloutNameTable がnullか、
・onig_st_lookup_callout_name_table でNULLが返される時にこのエラー
6デフォルトの名無しさん (ワッチョイ 617b-8+ss)
2024/11/06(水) 19:14:17.28ID:r48zHH+W0 ちなみに ONIGENC_IS_ASCII_COMPATIBLE_ENCODING の時には ONIG_ENCODING_ASCII にして再度検索してるから、
utf-8ならエラーにはならないはずだが、はて?
まあネタ元は GlobalCalloutNameTable らしいので
oniguruma>grep -n -r GlobalCalloutNameTable *
14件出るが全部このファイル内なので確認すると、どうやら
src/regparse.c:1501: callout_name_entry で作っているらしい
てっきり定数で与えられてる物を違うエンコーディングで検索して失敗してるのかと思いきや、
見る限り毎回全部作り直してるっぽいので、これって正規表現内の名前付きキャプチャ(?<Name>x)のことか?(※勘違い)
ただ、無ければ毎回登録してるだけなので、これが検索失敗するのはそもそもおかしい
(=だからこそ mbregex compile err: なわけだが)
なお関数は #ifdef USE_ST_LIBRARY によって登録の仕方が変わっており、ここで食い違ってるのかも?(※間違い)
oniguruma>grep -n -r USE_ST_LIBRARY * で(他多数)
src/regint.h:93:#define USE_ST_LIBRARY
なのだがこれは(このファイルがインクルードされる限り)毎回必ず#defineされてる
となると、fprintfでデバッグする気なら、
utf-8ならエラーにはならないはずだが、はて?
まあネタ元は GlobalCalloutNameTable らしいので
oniguruma>grep -n -r GlobalCalloutNameTable *
14件出るが全部このファイル内なので確認すると、どうやら
src/regparse.c:1501: callout_name_entry で作っているらしい
てっきり定数で与えられてる物を違うエンコーディングで検索して失敗してるのかと思いきや、
見る限り毎回全部作り直してるっぽいので、これって正規表現内の名前付きキャプチャ(?<Name>x)のことか?(※勘違い)
ただ、無ければ毎回登録してるだけなので、これが検索失敗するのはそもそもおかしい
(=だからこそ mbregex compile err: なわけだが)
なお関数は #ifdef USE_ST_LIBRARY によって登録の仕方が変わっており、ここで食い違ってるのかも?(※間違い)
oniguruma>grep -n -r USE_ST_LIBRARY * で(他多数)
src/regint.h:93:#define USE_ST_LIBRARY
なのだがこれは(このファイルがインクルードされる限り)毎回必ず#defineされてる
となると、fprintfでデバッグする気なら、
レスを投稿する
ニュース
- 【△】コンビニの鮭おにぎり、価格にネット衝撃「ついに…」 驚き続々「これはキツい…」「日本人を殺しに来てる」 [ぐれ★]
- 【東京】わずか9平方メートル…都心に近い「極小」アパートが若者に人気 狭くても“住めば都” [煮卵★]
- 【伊東市長選】「きょうは行きたくない」 落選の田久保眞紀 前市長が”取材拒否” 約束の場所に姿を現さず 最後まで誠実さを欠く [ぐれ★]
- 「ルンバ」製造のアイロボット、連邦破産法11条適用申請-近年収益減 [少考さん★]
- 中国軍機のレーダー照射1週間 駆け引き続く 中国、米のレッドライン模索 日本、米以外の同志国とも連携探る 米は対立から距離置く★3 [ぐれ★]
- 「婚活中の男女の8割以上が婚活疲れ」続ければ続けるほど蟻地獄にハマる必然とは? ★2 [ぐれ★]
- チー牛ニート
- PCってマジで来年値上げするの?いまのうちに買いだめしといたほうがええの?😲 [861717324]
- まどかマギカ見たけどこいつがメインキャラだったのかよ
- ゴミ←なにそうぞうした?
- ネオ麦茶
- アナル使わせて
