忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2025/11/24 08:14 |
PHP5.3 Filter関数
PHPの関数リファレンスを見ていると、見たことも聞いたこともない関数がよく出てきます。
今回の生贄はこちら、Filter

filter_var()こそ入力値検証として使っている人がみつかりますが、他の関数については一体何のために存在するのかわかりませんし使っている人も見あたりません。
http://d.hatena.ne.jp/moriyoshi/20090319/1237486066
http://d.hatena.ne.jp/koyhoge/20110822/llplanets
誰かfilter_id()の有効な使い方を教えてください。
つうかマニュアルのコピペサイト邪魔すぎる。
<?php
	//$_GET['hoge']が存在するかチェック
	$filterHasVar = filter_has_var(INPUT_GET, 'hoge');
	//$_GET['hoge']から数値と+-以外を削除
	$filterVar = filter_var($_GET['hoge'], FILTER_SANITIZE_NUMBER_INT);
	//$_GET['hoge']が1から100までの整数値かチェック
	$filterInput = filter_input(
		INPUT_GET, 'hoge', FILTER_VALIDATE_INT, array(
			'options'=> array('min_range'=>1, 'max_range'=>100),
			'flags'=> FILTER_FLAG_ALLOW_OCTAL | FILTER_FLAG_ALLOW_HEX
		)
	);
filter_input()はfilter_has_var()とfilter_var()を合わせたような関数で、第一引数と第二引数はfilter_has_var()のもの、第三引数と第四引数はfilter_var()のものと思えばいいです。
ていうかfilter_input()の第4引数の詳しい使い方はfilter_var()のほうにしか載っていません。

ややこしいのが、フィルタに与える値によって処理内容が全く変わってくるところです。
上記filter_var()の例ではFILTER_SANITIZE_NUMBER_INTを与ますが、この引数は単純に数値以外の文字が削除されます。
「?hoge=0x99」としたらfalseでも0でもなく、「099」が返ります。

これをFILTER_VALIDATE_INTにすると、"0x99"が数値形式か否かをチェックしてfalseが返ってくるようになります。

FILTER_VALIDATE_INTのオプションにさらにFILTER_FLAG_ALLOW_HEXを与えると、今度は16進数形式の数値も許されるようになり、「153」が返ってきます。

上記filter_input()の例ではFILTER_VALIDATE_INT、FILTER_FLAG_ALLOW_HEXに加えてさらに、整数値の範囲1から100を追加しています。
"0x99"は153になり100を超えるので、falseが返ります。

使い慣れれば便利なのかもしれませんが、なんかどうにも使い方が疲れる関数です。
PR


2011/12/12 22:00 | Comments(0) | TrackBack() | PHP
買ったものリスト 2011/12/11
スカイリムがどこにも売ってないにょろ~



アクセルワールド5 星影の浮き橋 川原 礫
アクセルワールド6 浄火の神子
アクセルワールド7 災禍の鎧
アクセルワールド8 運命の連星
アクセルワールド9 七千年の祈り
☆☆☆☆

わりと長く続いた災禍の鎧エピソード、ついに完全決着。
いつも思うのだが、こんな技術があったら大人が放っておくわけないよな。
だって科学者を1年放り込んでおけば1000年分の研究結果が出せるんだぜ。
対象者は幼少時からどうのといった条件はあるけど、そこらへんは分析が進めばどうにかなる範囲でしょう。
実際あれを作った人たちが少年だけとかありえないだろうし。

ということで早いとこ実現してください。
いやほんとお願いしますよ。


2011/12/11 20:53 | Comments(0) | TrackBack() | 買ったもの
Minecraft 1.8.1 IndustrialCraft2 電気炉、粉砕器、圧縮機、抽出機をパワーアップ
誘導加熱炉(Induction Furnace)は電気炉の上位版で、レシピは電気炉、アドバンスドマシン、銅インゴット*7です。
2011-11-12_12.04.14.png

特徴はスロットが二つあること。
2011-11-12_12.13.37.png

これにより、倍のアイテムを突っ込んで一気に精錬することができます。

また、スロースターターですが最終速度は非常に速いです。
スロットに鉱石を入れると起動し、運転しながらHeatの値が徐々に上がっていきます。
Heatが上昇するにつれて精錬の処理時間が短くなっていきます。
といってもHeat10%程度で既に電気炉より速いので余り気にする必要はないでしょう。
2011-11-12_12.43.49.png

最終的にHeatが100%になると、アイテムひとつ0.2秒くらいで精錬してくれます。
BuildCraftの木パイプ最終段階より早いので、なにも考えずにどんどん送り込むことが可能です。
なお、レッドストーンを入力しておくと、常時1EUを消費してHeatを100%に保ち続けるという機能もあります。
初っぱなからフル回転させたいときは検討の余地があるでしょう。

なお、Wikiだと起動時の消費電力が460EUとかありますが、実測したところそんなに無いようです。
というか高圧(512EU)入れると爆発します。
写真では中圧(128EU)で動作していますが、低圧(32EU)でも動作に支障はありませんでした。


さて、電気炉以外の機種、粉砕器、圧縮機、抽出機には何故か上位機種がありません。
そこらへんの上位機種を追加するアドオン、Advanced Machinesを使ってみます。

まず粉砕器の上位機種、回転式粉砕器(Rotary Macerator)。
レシピは粉砕器、アドバンスドマシン、精錬鉄*7。
2011-11-15_23.18.45.png

誘導加熱炉同様スロースターターで、機械を動かしていればいるほど粉砕速度が増していき、最後はすごいことになります。
またレッドストーン入力を入れておけば、1EUを消費して速度を保っておけるのも誘導加熱炉と同じです。
消費電力は実測で15EU程度でした。
2011-11-15_23.28.27.png

ただ、回転式粉砕器には粉砕器にはない問題点が一点だけ存在します。
真上から鉱石を投げ入れた場合、粉砕器では粉砕スロットにしかアイテムが入らないのに対し、回転式粉砕器では何故か燃料スロットにも配置されてしまいます。
燃料ではないので消費はされませんが、鉱石が使われずに残ってしまいます。
これを防ぐには、適当に不要なアイテムを燃料スロットに突っ込んでおきましょう。


次は圧縮機の上位機種、応用特異場圧縮機(Singularity Compressor)
レシピは圧縮機、アドバンスドマシン、黒曜石*7。
2011-11-15_23.41.07.png

機械の特性はスロースターター、レッドストーン入力で高速を保つ、消費電力およそ15EUと回転式粉砕器と全く同じです。
2011-11-16_00.03.06.png

最後は遠心分離器(Centrifuge Extractor)
レシピは抽出機、アドバンスドマシン、電解水セル*7。
2011-11-16_00.12.45.png

特性も全く同じです。
2011-11-16_00.23.50.png

なお回転式粉砕器には出力スロットが2つ、遠心分離器には出力スロットが3つあるため、鉱石や樹液を入れても粉砕が32個で止まった、なんてことにはなりません。
ナイス心配りですね。


マインクラフトのまとめ


2011/12/10 17:16 | Comments(0) | TrackBack() | └minecraft
Minecraft 1.8.1 MOD紹介 クリスタルウィング
Crystal Wingは、リスポーン地点に戻ることのできるアイテムを追加するMODです。

一言で言うとキメラの翼。

レシピは金インゴット*3、羽根*2、エンダーパール。
2011-11-16_22.01.09.png

手に持って右クリックすると、最後に寝た地点に一瞬で戻ることができます。
使用回数は8回で、最後に使ったときにアイテムは消滅します。
これでもう道に迷っても安心。
帰り道のことを考えずどこまでも突き進み、アイテムがいっぱいになったら、あるいは力尽きる直前で使用するとよいでしょう。

ただし注意点がひとつ。
このアイテムをネザーで使用しても戻ることはできず、かわりに燃え出してしまいます。
2011-11-16_22.14.10.png

燃えている羽根(Burning Wing)は所有している限りプレイヤーが炎上し、継続的にダメージを受け続けるという危険なアイテムです。
すぐに投げ捨てない限り最終的には死んでしまいます。
羽根を投げ捨てれば即座に鎮火します。

気合いで羽根を通常世界に持ち帰って水に浸けると火は消え、燃え尽きた羽根(Burned Wing)に変化します。
2011-11-16_22.20.58.png

これを使うと、ランダムでどこか遠く離れた場所に飛ばされます。
初期状態では最大500でブロック飛ばされるようです。
config/mod_crystalWing.cfgのteleDistance=500がおそらくその設定だと思いますが、ここを大きくすると楽しいことになりそうな予感。


マインクラフトのまとめ


2011/12/10 17:08 | Comments(0) | TrackBack() | └minecraft
PHP5.3 謎関数_()
get_defined_functions()で使用できる関数の一覧を取得できますが、
先日get_defined_functions()の出力を眺めていたところ、妙なものを発見。

string(1) "_"

なんだこれ。

こんな関数ググりようがないので、とりあえず使ってみる。
<?php
	_();
	print(_('a'));
	print(_(new DateTime()));
	ReflectionFunction::export("_");
Warning: _() expects exactly 1 parameter, 0 given in C:\xampp\htdocs\hoge.php on line 2
a
Warning: _() expects parameter 1 to be string, object given in C:\xampp\htdocs\hoge.php on line 4

Function [ <internal:gettext> function _ ] {
  - Parameters [1] {
    Parameter #0 [ <required> $msgid ]
  }
}
引数がそのまま返ってくるんですかね。

よくわからないのでソースを見てみる。
Cは正直得意じゃないんですが、というかさっぱりわからないんですが。
ていうか、どう検索すればいいんだか。

色々触ってたら、ext/mbstring/oniguruma/st.h
# define _(args) args
というのを発見しました。
これか?と思ったけどなんかちがうっぽい。よくわかんないけど。
動作的には_(args)を以後argsとして扱うって内容みたいなのでそれっぽいんだけど。

結局なんなのかわからなかったんですが、これ何なんですかね。


2011/12/09 20:47 | Comments(1) | TrackBack() | PHP
Minecraft 1.8.1 IndustrialCraft2 拡張MOD紹介 ソーラー発電機をパワーアップ
ソーラー発電機はひとつあたり1EUしか発電できません。
数がそろえば強力な武器になりますが、作成のコストが高くてもいいからひとつあたりの出力を高めたいという要望に応えるMODがこちら、Advanced Solar Panelです。

なお、公式のものはIC1.15までしか対応していません。
1.23対応のものは、フォーラムで有志が製作している[Arsenic TempFix]というものを探して入れましょう。
執筆時点での最新版は[Arsenic TempFix v3]でした。

アドバンスドソーラーパネルのレシピは2種類あります。

強化ガラス(Reinforced Glass)*3、カーボンプレート(Carbon Plate)*2、アドバンスドマシン(Advanced Machine)、ラポトロンクリスタル(Lapotron Crystal)、グラスファイバー(Glass Fibre)。
もしくは強化ガラス(Reinforced Glass)*2、カーボンプレート(Carbon Plate)*2、アドバンスドマシン(Advanced Machine)、ラポトロンクリスタル(Lapotron Crystal)、ソーラー発電機(Solar Panel)。

どう見ても後者の方が簡単です。
2011-11-11_22.27.07.png

こうして作成したAdvanced Solar Panelは、昼間11EU、夜間でも月光を利用して1EUという高性能な出力を発揮します。
また、パネルそれ自身が16000EUのストレージを所持しています。
昼間使い切らなかった電力を溜めておき、夜間はそちらを使用するという運用も行なえます。

5個作って花にすると合計出力は55EUとなり、銅ケーブルでは輸送しきれません。
またアドバンスドソーラーパネルの出力は最大512EUの高圧です。
従ってソーラーパネルの出力をバットボックスやMFEトランスミッタで受け取ると蓄電器が爆発します。

いやなんかね、MFEに電力がたまってない間は普通に充電してくれるんですよ。
で、あるとき一斉にぼかんぼかん。
いやあ何事かと思いました。

ということでアドバンスドソーラーパネルを使用する際はがんばってMFSユニットを作りましょう。


マインクラフトのまとめ


2011/12/08 22:14 | Comments(0) | TrackBack() | └minecraft
Minecraft 1.8.1 MOD紹介 自動販売機追加MOD
前回自動販売機MODをだしにCustom Stuffを紹介しました。
日本人作者で解説も日本語なのであえて紹介する意味はあまりないのですが、せっかくなので今回はその自動販売機追加MODを紹介してみます。

自動販売機ブロックが3つ追加されます。
作成が手軽なわりにかなり便利です。

レシピは鉄インゴット*8と真ん中にバケツ。
水入りバケツでウォーターサーバ(Water Server)、牛乳入りバケツでミルクサーバ(Milk Server)、そして溶岩入りバケツで溶岩サーバ(Lava Server)です。
2011-11-13_18.17.49.png

どのような効果があるかというと、自動販売機に向かって空のバケツを使うと、中を満たしてくれます。
無限水源のようなブロックです。
2011-12-08_21.59.09.png

見た目も自動販売機っぽくてわかりやすいですね。
まあ無料なので販売とか言われると?ですが。

バケツを持たずに直接右クリックすると中身を飲むことができます。
水と牛乳は即座にライフが回復します。
回復量は水が0.5、牛乳が2.5のようです。
連打するとすぐにライフが満タンまで回復します。
ただ満腹度は回復しないので、空腹の時は使ってもすぐにダメージを受けてしまいます。

また溶岩サーバも飲むことができます。
どういうことかというと、こう。
2011-12-04_13.38.25.png

燃えます。
通常の炎上同様、水に入ると鎮火します。
またハート20程度で自然回復するようですが、普通はその前に死にますね。


マインクラフトのまとめ


2011/12/08 22:01 | Comments(0) | TrackBack() | └minecraft
Minecraft 1.8.1 IndustrialCraft2 MFSユニットを作る
MFEトランスミッタを作って蓄電器としました。
一般的な用途には正直これで十分なのですが、さらに大規模な施設を作りたい場合にはさらに上位の蓄電器が存在します。
MFSユニット(MFS Unit)は、MFEトランスミッタの実に16倍以上の1000万EUを蓄電し、512EUの出力が可能となります。

高性能だけあって作成も大変で、あわせてダイヤが10個必要となりますのでがんばって集めましょう。

素材を順に作っていきます。
まずラポトロンクリスタル(Lapotron Crystal)。
これは単体でも充電池の上位版として、100万EUもの電力を充電する能力があります。
レシピはエナジークリスタル、電子回路*2、ラピスラズリ*6。
2011-11-09_01.51.46.png

次は発展回路(Advanced Circuit)。
これは電子回路、レッドストーン*4、グロウストーンダスト*2、ラピスラズリ*2とカラフルなレシピとなっています。
2011-11-09_01.57.35.png

最後にアドバンスドマシンですが、さらにその部品を作ります。
まず鋼鉄*3、青銅*3、スズ*3で合成したメタルインゴット(Mixed Metal Ingot)ができ、それを圧縮すると合金板(Advanced Alloy)になります。
2011-11-09_09.41.28.png2011-11-09_09.45.40.png

マシンブロック+合金板*2+カーボンプレート*2で、ようやくアドバンスドマシン(Advanced Machine Block)の完成です。
アドバンスドマシンは高度な機械の作製に必須となります。
2011-11-09_09.50.01.png

最後にMFEトランスミッタ+アドバンスドマシン+発展回路+ラポトロンクリスタル*6を組み合わせると、ようやくMFSユニット(MFSU)が完成です。
2011-11-09_12.10.15.png

なお、MFSユニットは出力が高圧(512EU)となるので、通常の機械に使うには低圧に変換が必要です。
中圧変換装置(MV Transformer)で高圧→中圧(128EU)に、低圧変換装置(LV Transformer)で中圧→低圧(32EU)にと二段階の変換を経る必要があります。
幸い中圧変換装置の作成は簡単で、マシンブロック+銅ケーブル*2となります。
2011-11-09_11.52.33.png

これで、発電機からやってきた電力を、ほぼ無尽蔵なレベルで大量に貯めておくことができるようになりました。

2011-11-09_12.29.03.png
電気の流れる順に発電機(上の画面外)→MFSユニット(出力は下向き)→高圧用の3倍絶縁ケーブル→中圧変換装置(出力は左)→MFEトランスミッタ(出力は左)→低圧変換装置(出力は手前)→各機械装置(手前の画面外)となっています。


マインクラフトのまとめ
 


2011/12/07 21:37 | Comments(0) | TrackBack() | └minecraft
Minecraft 1.8.1 Custom Stuffでレシピを自作
※以下はMinecraft1.8.1用のレシピファイルの書き方です。
Minecraft1.0用の書き方はこちら


EquivalentExchange5
の鉄の指輪(Iron Band)のレシピが中央に溶岩バケツ+鉄インゴット*8、そして自動販売機MODにある溶岩サーバ(Lava Server)のレシピが中央に溶岩バケツ+鉄インゴット*8と、全く同じになっています。

この場合、レシピブックなどでは両方のレシピが確認できますが、実際作れるのはどちらか片方だけになってしまいます。
2011-11-12_19.12.15.png

そのようなときにどうするか。
一時的に片方のMODを外すとかレシピ変更を作者におねだりするとか色々あるでしょうが、自作レシピを追加してしまうというのもひとつの手です。
といってもわざわざレシピを追加するだけのMODを作成するというのも大仰です。
そもそも知識無いですし。

そんな素人でも簡単にレシピを作れるようになるMOD、それがCustom Stuffです。
使用したバージョンは1.8.1です。

実際は他にもブロックやアイテムなども作れるようになるのですが、今回はレシピだけ使ってみます。
適用して起動するとconfigフォルダにcustomBlocksとかcustomItemsとかのフォルダができますが、レシピはcustomRecipesを使用します。

config/customRecipes/LavaServer.recipeファイルを作成し、中に
209 1 3 3 265 265 265 265 265 265 265 327 265
と記述します。

その後、溶岩バケツを下中央において鉄インゴット*8を並べると、何故か溶岩サーバを作成することができます。
2011-11-12_19.47.01.png

さて仕組みを解説。
まずファイル名ですが実は適当でかまいません。
重要なのは拡張子で、.recipeのみがレシピファイルとして認識されます。

次に中身を見ていきます。
最初の209は作成後のブロックorアイテムIDです。
溶岩サーバのブロックIDは、config/mod_DrinkServer.cfgにあるLavaServerID=209の部分で指定されています。
(デフォルトは254とかのはずですが、手元の環境では設定変更しています)

次の1は作成した後にできる個数です。
今回はひとつなので1です。

次の3 3はレシピの横サイズ、縦サイズです。
今回は3*3を利用するので3 3となっています。
作業台を使わずに作れるサイズにするのであれば2 2といったふうになります。

その後はレシピに使うブロックorアイテムIDを左上から順に並べていきます。
265が鉄インゴット、327が溶岩バケツです。
今回は使用していませんが、何も置かない場所に対しては0を指定します。
結果として、「265 265 265 265 265 265 265 327 265」が、左上から鉄鉄鉄、鉄鉄鉄、鉄溶岩バケツ鉄というレシピを表していることになります。

ちょっとしたテキストを1行書くだけで、非常に簡単にレシピを追加することができました。

これを使うと、基本的に入手不可能な岩盤や溶岩などのアイテムもクラフトすることができるようになります。
また、本来作るのが非常に大変だったり面倒だったりするアイテムを一瞬で大量に作ってしまうことも可能です。
濫用するとゲームが激しくつまらなくなるので気をつけましょう。


マインクラフトのまとめ


2011/12/07 21:35 | Comments(2) | TrackBack() | └minecraft
Minecraft 1.8.1 MOD紹介 持ち歩ける収納MOD
まずはBackpacks 1.8.1を紹介。
バックパック(Backpack)を追加する小規模なMODです。

が、便利さにかけては一級品。
機能を簡単にいうと「持ち歩いたまま使えるチェスト」です。

作り方は革*8をチェスト同様周囲に並べます。
中央に染料を置くと染色することもできます。
2011-11-16_21.59.16.png

作成したバックパックを手に持ち右クリックするとインベントリ画面が開きます。
2011-11-01_21.17.26.png

あとは普通にチェスト同様アイテムを出し入れすることができます。
さらに、バックパックにアイテムを入れたままチェストに保存したりすることも可能です。
当然ですが、さすがにバックパックにバックパックを詰め込むことはできません。

あとは、スニークキー(左シフト)を押しながらバックパックを使うと、名前をつけることができます。
2011-11-01_21.17.39.png

色分けと名前のおかげで、複数のバックパックを持ち歩いても中身がわからず混乱することが少なくなるでしょう。

アイテムを全てバックパックで埋め尽くしたとすると、手に持てる数が36、バックパックの容量が27で、理論上972種類ものアイテムを持ち運べることに。
もはや自宅とか要らないんじゃないかというレベルの所持量ですが、その状態で溶岩に突っ込んだときのことを考えるとなんとも恐ろしい。

次に錬金バッグ(Alchemy Bag)。
これは前回同様、単品ではなくEquivalent Exchange(EE)という大型MODの機能の一部です。

レシピは錬金チェスト、共有結合粉(C)*3、羊毛*5。
2011-11-12_20.38.22.png

容量は錬金チェストと同じく104個です。
そして最大の特徴は、このアイテムはバックパックではなく四次元ポケットだということです。
どういうことかって、複数錬金バッグを作っても、そこからアクセスする先は同じになるということです。

遠く離れた2拠点で道具を使い回したり、迷子になって帰れないときにアイテムを突っ込んでおいて拠点でリスポーンしてから回収、などといった利用法が考えられます。
なお、使用する羊毛によって全16種類の錬金バッグが作成できます。

ちなみに、錬金バッグ自身に錬金バッグを詰めると手元から消え失せてしまい、同じ色の錬金バッグをもうひとつ作成しない限り取り出せなくなってしまいます。


ちなみに、バックパックを作るときに、中央に染料のかわりにダイヤモンドを置くとマジックバックパック(Magic Backpack)が作成できます。
2011-11-16_21.51.29.png

これは錬金バッグ同様4次元ストレージを持つバックパックです。
容量は普通のチェストと同じであまり大きくありませんが、錬金バッグに比べて作成が容易なため、普段持ち歩くのに重宝します。




2011/12/06 22:03 | Comments(1) | TrackBack() | └minecraft

<<前のページ | HOME | 次のページ>>
忍者ブログ[PR]