HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
1230
(´ω`)mod_regexp モジュールの replace のバグ?4解決


(´ω`)

リンク

2014/12/30(Tue) 11:35:03|NO.66716


#include "mod_regexp.as" a = "2014-12-31" b = replace(a,"/","-") mes "もと:"+a mes "変換:"+b

このコードを実行すると、変換元の変数の内容も書き換わります。
これは、バグ……かしら?( ゚ω゚ )



この記事に返信する


(´ω`)

リンク

2014/12/30(Tue) 11:38:18|NO.66717

うあ、間違えた!
すいません、ド勘違いです……



(´ω`)

リンク

2014/12/30(Tue) 11:57:50|NO.66719

あれ、元ソースは勘違いしてなかった……(u ゚ω゚ )

……すいません、質問というか確認というか。
このreplaceの内容に絡むのがソース全域に及ぶので全部の公開はできないのですが、


qa = "'" + salesday_today + "'" q = "'" + replace(qa,"/","-") + "'"

この、salesday_today というのにはスラッシュ表記の本日の日付(例:2014/12/30)を入れてます。
SQLiteではこのまんまで利用しているのですが、MySQLで使うにはマイナス表記のが便利なので、
スラッシュをマイナスに変換(例:2014/12/30 ⇒ 2014-12-30)したものを q に入れたわけです。

が、この後に値を参照するとなぜか qa の方もマイナス表記に変換されてしまっていて、qa を
利用したSQL文が正しく実行できていなかった。

なので、


qa = "'" + salesday_today + "'" q = "'"+replace(qa,"/","-")+"'" qa = "'" + salesday_today + "'"

と、qa に再度値を入れ直すことで、qa を使ったSQL文もちゃんと動作するようになりました。

……つまり、何らかの条件で replace文が変換元の内容をも書き換えてしまうことというのは、
あり得るのでしょうか、という質問です。

一応、解決のままで。(u´ω`)



YTT

リンク

2014/12/30(Tue) 20:42:24|NO.66733

mod_regexpのソースを見る限り元の変数を書き換えるような処理はしてないように見えます。
あなたのソースに問題があるのかmod_regexpに問題があるのかHSPのバグなのか
具体的にその状況が再現できるスクリプトを示せない限り何とも言えないです。



(´ω`)

リンク

2015/1/2(Fri) 02:07:25|NO.66797

>YTTさま

わざわざ調べていただき、ありがとうございます。(´ω`)

私の環境でも、普通に replace文を使うと問題なく、ソースの特定箇所では
必ず起きるという内容ですので、私のソースに大きな問題があるのだろうと思います。

何か分かり次第、またご報告させていただきます。



ONION software Copyright 1997-2023(c) All rights reserved.