A Possibility of Infinity

無い知識を総動員

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

正規表現

自分用φ(..)メモ。

PHPにて、正規表現を用いる際に
$col = 0;
$mondai["0"] = "これが表示されて欲しい";
$buf = "%mondai[%col]";
$buf = ereg_replace("%col",$col,$buf);
$buf = ereg_replace("%mondai\[0\]",$mondai["0"],$buf);
echo $buf;
とすると出力結果が %mondai[ ] となる珍現象に出くわした。
解析したら[ ]の中は0x31(数字の一)ではなく0x01(バイナリの一)が出力される不思議現象。

原因はパターンマッチングの際には "数字としての数字" と "文字としての数字" を別に扱っているか、
マッチするけど挙動が少々異なる、のかなーと推測。あとはバグ?わからんけど。

なので数字で扱うのを避けて、stringにキャストすればすべて解決。

$col = 0;
$col = (string) $col;           #ここを追加
$mondai["0"] = "これが表示されて欲しい";
$buf = "%mondai[%col]";
$buf = ereg_replace("%col",$col,$buf);
$buf = ereg_replace("%mondai\[0\]",$mondai["0"],$buf);
echo $buf;
これで出力結果は欲しい物が得られた。
スポンサーサイト

PageTop

コメント


管理者にだけ表示を許可する
 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。