人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPスクリプトに関する質問です。
[[数値-数値]] の形式の文字列を、その数値間の間のランダムな整数に置き換えるスクリプトを教えてください。

例:[[20-999]] は 20以上999以下の範囲にあるランダムな1つの整数に置換される。

●質問者: bathrobe
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:PHP スクリプト ランダム 整数 文字列
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● riaf
●28ポイント

$string = '[[20-999]]';

if(preg_match('/\[\[([0-9]+)\-([0-9]+)\]\]/', $string, $match)){

$rand = rand($match[1], $match[2]);// mt_rand()でも可

} else {

$rand = null;

}

echo $rand;

こんな感じですか?

http://php.net/mt_rand

◎質問者からの返答

ありがとうございます。

ですが、自分の質問が悪いことに気づきました。

ある文字列の中に、[[数値-数値]] の形式の文字列が含まれるとき・・・ を考えていました。

???

例:

あなたのさいころの目は[[1-6]]です。

あなたのさいころの目は3です。

???

のような置換を考えておりました。

もしよろしければ、再度ご回答ください。


2 ● GEN111
●42ポイント
$range = '[[20-999]]' ;
$randnum = (int)preg_replace('/\[\[(\d+)-(\d+)\]\]/e', "rand($1, $2)", $range) ;

こんな感じでどうですか。

rand

◎質問者からの返答

おおっ、すばらしい。

こんなところに関数(rand)を置けるのですね!

$range には数字以外も入れたいので、int ははずしました。ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ