php インチからミリメートルへの変換 ソースと解説
木工工作の参考の為にYouTubeで海外の映像をよく観るのですが、米国だと単位がインチなので、大きさの感覚がつかみづらく困っていました。10インチだと約25cmだということはわかっていても、実際には5と6分の4インチというように帯分数が使われます。長さに分数が出てくるというのは日本では常識的ではありませんね。米国ではインチよりも小さい場合は分数で表すということが日常的なのです。そういえば、コンピュータの出力設計用紙では改行は6分の1インチでした。1ページは11インチですから66行印字できますが、実際には間の60行だけを使うことが標準でした。
今回は自分の木工工作の為にインチからミリメートルへの変換プログラムを作ってみました。センチではなく、ミリの単位にするのは、実際にSketchUpで設計するときの単位に合わせたわけです。
入力項目は、インチの整数部分と分子と分母を別々にしています。分数が必要で無い場合は、分子を0とすればいいわけで、画面でも0をデフォルトとしています。分母は2,4,6,8,10,12,16からの選択にしています。これ以外の分母にはまだお目にかかったことが無いからです。
インチの整数部分と分子分母を入力し、ミリメートルへの変換をして結果を表示します。
プログラム言語:PHP
データベース:無し
動作条件
インターネットに接続してある標準的なWebブラウザで動きます。(Firefox、Safari、Chromeを推奨)
ソース
実際の文字コードはUTF-8ですが、ここではShift-JISにして表示します。
MVC | file name | 概要 |
---|---|---|
Controller | inchmm.php | プログラムの本体 |
Model | inchmm_model.php | 表示する画像のファイル名を生成する関数とインチからミリメートルへの変換関数を定義 |
View | inchmm_tmpl.php | 結果を表示するテンプレート |
inchmm_main.php | 画像と入力フォームと計算結果の表示 | |
header.php | 共通ヘッダー | |
footer.php | 共通フッター |
controllers/inchmm.php
- パラメータ無しで呼び出されたときは、入力フォームを表示します。
- 入力フォームから呼び出されたときは、整数部分のチェックをします。
- 分子と分母はプルダウンメニュー方式なのでチェック不要です。
- チェックOKならば、ミリメートルへの変換をして結果を連想配列にセットします。
- チェック・エラーならば、その旨を連想配列にセットします。
- 結果は入力フォームの下に表示するので、続けて入力ができます。
models/inchmm_model.php
- ファイル名はav256.jpgのようにavの後に三桁の数字が付くのですが、この数字を乱数で決めています。
ちなみにavはaviationの略です。 - ミリメートルの値は小数点以下を四捨五入しています。
- また、大きな数字になる場合は三桁毎にコンマを付けています。
- 結果の文字列にはミリメートルの値だけでなく、元の入力値もセットします。
views/inchmm_main.php
- 画像を表示しているのは、単なるおまけです。
- 整数部分はキーボードからの入力です。
- 分子と分母はプルダウンメニュー方式にしています。これは値がほとんど決まっているからです。
- 入力エラーメッセージは赤で表示します。
- 計算結果は枠を付けて表示します。
- ソースと解説のページへのリンクがあります。
実行
左の画像をクリックして実際に使ってみて下さい。
なお、トップページからも簡単に使えるようにしています。
2015年9月19日 記
一部修正
入力エラーの時に表示される画像を同じものに固定することにしました。
修正点は以下のコントローラ(inchmm.php)の一部分だけです。
2015年10月3日 記