湿度表を作成するPHPコード
これ http://hum.uah.jp/table.php のソース。
tatle.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 12.0.1.0 for Windows"> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>乾湿計 => 湿度換算表出力 PHP版</TITLE> <?php function humid($dry,$dif,$atm,$wind,$freeze,$output) { if ($freeze) { $a = 9.5; $b = 265.5; if ($wind) { $k = 0.44; // 蒸気圧乗数 $m = 755; // 通風乗数 } else { $k = 0.0007; $m = 1; } } else { $a = 7.5; $b = 237.3; if ($wind) { $k = 0.5; $m = 755; } else { $k = 0.0008; $m = 1; } } $t1 = $dry; $t2 = $dry - $dif; $p0 = $atm; $e_t1 = 6.11 * pow(10 , 7.5 * $t1 /(237.3 + $t1)); // 飽和水蒸気圧(t1℃,vs水) $e_t2 = 6.11 * pow(10 , $a * $t2 /($b + $t2)); // 飽和水蒸気圧(t2℃,vs水or氷) $e_now = $e_t2 - $k * $p0 * ($t1 - $t2) / $m; // 現在の水蒸気圧 $rh = $e_now / $e_t1 * 100.0; // 相対湿度 if ($e_now == 6.11) { $t_dp = 0; } elseif ($e_now <= 0) {$t_dp = -273.15;} else { $t_dp = $b / (($a / log10($e_now / 6.11)) - 1); } // 露点温度 $h_abs_v = 216.7 * $e_now / (273.15 + $t1); // 容積絶対湿度 [g/m^3] $h_abs_w = (18.015 * $e_now) / (29.064 * ($p0 - $e_now)) * 1000; // 重量絶対湿度 [g/kgDA] switch ($output) { case 0: $hu = $rh; break; case 1: $hu = $h_abs_v; break; case 2: $hu = $h_abs_w; break; case 3: $hu = $e_now; break; case 4: $hu = $t_dp; break; } return $hu; } if (isset($_POST['mnu_degree'])) { $df = $_POST['mnu_diff']; $dg = (float) $_POST['mnu_degree']; $rdh = $_POST['rdo_humid']; $ckw = $_POST['chk_wind']; $ckf = $_POST['chk_freeze']; $tt0 = $_POST['txt_temp0']; $tt1 = $_POST['txt_temp1']; $atm = (float) $_POST['txt_p0']; $dt = $_POST['mnu_digit']; } else { $df = 7; $dg = 0.5; $rdh = 0; $ckw = false; $ckf = true; $tt0 = -20; $tt1 = 45; $atm = 1013.25; $dt = 0; } if ($tt1 < -30) { $tt0 = -30; } if ($tt1 > 100) { $tt1 = 100; } if ($tt0 < -30) { $tt0 = -30; } if ($tt0 > 100) { $tt0 = 100; } if ($tt0 > $tt1) { $tt1 = $tt0; } if (($tt1 - $tt0) / $dg >= 500) { $dg = 0.5; } if ($df / $dg >= 100) { $dg = 0.5; } if (($atm <= 300) or ($atm >= 10000)) { $atm = 1013.25; } $s_rdh = array("", "", "", "", ""); $s_rdh[$rdh] = "checked "; if ($ckw) { $s_ckw = "checked "; } else { $s_ckw = ""; } if ($ckf) { $s_ckf = "checked "; } else { $s_ckf = ""; } $s_tt0 = sprintf("%1d" , htmlspecialchars($tt0)); $s_tt1 = sprintf("%1d" , htmlspecialchars($tt1)); $s_dg = array("0.1" =>"", "0.2" =>"", "0.5" =>"", "1.0" =>"", "2.0" => ""); $s_dg[sprintf("%1.1f", $dg)] = "selected"; $s_atm = sprintf("%1.2f" , htmlspecialchars($atm)); $s_df = array(5 =>"", 7 =>"", 10 =>"", 15 =>"", 20 =>""); $s_df[$df] = "selected"; $s_dt = array("", "", "", ""); $s_dt[$dt] = "selected"; $n_col = $df / $dg + 1; $color_a = array(0 => "#ffcccc", 1 => "#99ffcc"); $color_b = array(0 => "#99ccff", 1 => "#cc99ff"); $c = 0; $s_output = array("相対湿度", "容積絶対湿度", "重量絶対湿度", "水蒸気圧", "露点温度"); $s_unit = array("%", "g/㎥", "g/kgDA", "hPa", "℃"); $limit = array(0, 0, 0, 0, -273.15); // 各計算値の下限 ?> </HEAD> <BODY bgcolor="#ccccff"> <H1>乾湿計 => 湿度換算表</H1> <p> <font size="-1" color="#666699"> ※ このページは、(通風・非通風)湿度表を計算して表示するツールです。</font><br> </p> <FORM action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <TABLE> <TBODY> <TR> <?php for ($i = 0; $i <= 4; $i++) { echo '<TD nowrap valign="top">'; echo '<INPUT type="radio" '.$s_rdh[$i].'name="rdo_humid" value="'.$i.'"></TD>'; echo '<TD valign="top">'.$s_output[$i]; echo '<IMG src="img/Image2.gif" width="15" height="4" border="0">'; echo '<BR>('.$s_unit[$i].')</TD>'; } ?> </TR> </TBODY> </TABLE> <INPUT type="checkbox" name="chk_wind" <?php echo $s_ckw; ?>> 通風計用 <IMG src="img/Image2.gif" width="30" height="4" border="0"> <INPUT type="checkbox" name="chk_freeze" <?php echo $s_ckf; ?>> 湿球凍結時の値も表示 <BR><br> <INPUT size="8" type="text" maxlength="8" name="txt_temp0" value="<?php echo $s_tt0; ?>" style="text-align : right;"> ℃〜 <INPUT size="8" type="text" maxlength="8" name="txt_temp1" value="<?php echo $s_tt1; ?>" style="text-align : right;"> ℃<IMG src="img/Image2.gif" width="30" height="4" border="0"> きざみ: <SELECT name="mnu_degree" style="text-align : right;"> <OPTION value="0.1" <?php echo $s_dg["0.1"]; ?>>0.1</OPTION> <OPTION value="0.2" <?php echo $s_dg["0.2"]; ?>>0.2</OPTION> <OPTION value="0.5" <?php echo $s_dg["0.5"]; ?>>0.5</OPTION> <OPTION value="1" <?php echo $s_dg["1.0"]; ?> > 1</OPTION> <OPTION value="2" <?php echo $s_dg["2.0"]; ?> > 2</OPTION> </SELECT>℃ <IMG src="img/Image2.gif" width="30" height="4" border="0">大気圧: <INPUT size="10" type="text" maxlength="10" name="txt_p0" value="<?php echo $s_atm; ?>" style="text-align : right;"> hPa <BR> 乾湿差: <SELECT name="mnu_diff" style="text-align : right;"> <OPTION value="5" <?php echo $s_df[5]; ?> > 5</OPTION> <OPTION value="7" <?php echo $s_df[7]; ?> > 7</OPTION> <OPTION value="10" <?php echo $s_df[10]; ?>>10</OPTION> <OPTION value="15" <?php echo $s_df[15]; ?>>15</OPTION> <OPTION value="20" <?php echo $s_df[20]; ?>>20</OPTION> <!-- --> </SELECT>℃まで表示<IMG src="img/Image2.gif" width="30" height="4" border="0"> 小数点以下 <SELECT name="mnu_digit" style="text-align : right;"> <OPTION value="0" <?php echo $s_dt[0]; ?>>0</OPTION> <OPTION value="1" <?php echo $s_dt[1]; ?>>1</OPTION> <OPTION value="2" <?php echo $s_dt[2]; ?>>2</OPTION> <OPTION value="3" <?php echo $s_dt[3]; ?>>3</OPTION> </SELECT>桁まで表示<BR> <BR> <INPUT type="submit" name="sub_" value="換算表の出力↓"> <br> <font size="1" color="#cc0000"> <b>注意:</b>きざみ値を小さくし、温度範囲を広げると、表が必要以上に巨大になり処理時間もかかります。 <br><IMG src="img/Image2.gif" width="15" height="4" border="0"> (強制的にきざみ値が変更される場合は、温度範囲や乾湿差を減らして再試行してください。)</font> </FORM> <?php //echo '$df='.$df.' $dg='.$dg.'$atm='.$atm; ?> <TABLE border="1" bgcolor="#ccccff" cellpadding="2"> <TBODY> <?php echo '<TR><TH colspan="'.($n_col + 1 - 2).'" align="center">'; echo '<font size="+2">'.$s_output[$rdh]; echo '</font></TH>'; echo '<TD colspan="2" align="center">'; echo '<font size="-1">('.$s_unit[$rdh].')'; echo '</font></TD>'; echo '</TR>'; ?> <TR> <TD align="center" rowspan="2" bgcolor="<?php echo $color_a[0]; ?>">乾球示度 ℃<BR> (DRY)</TD> <TD colspan="<?php echo $n_col; ?>" align="center" bgcolor="<?php echo $color_a[1]; ?>"> 乾湿差 ℃ (DRY-WET)</TD> </TR> <TR> <?php for ($i = 0; $i <= $df + .05; $i += $dg) { echo '<TD align="center" bgcolor="'.$color_a[1].'">'; if ($dg >= 1) { printf ("%2d", $i); } else { printf ("%2.1f", $i); } echo '</TD>'; } ?> </TR> <?php for ($i = $tt1; $i >= $tt0 - .05; $i -= $dg) { $c = 0; echo '<TR><TD align="center" bgcolor="'.$color_a[0].'">'; if ($dg >= 1) { printf ("%2d", $i); } else { printf ("%2.1f", $i); } echo '</TD>'; for ($j = 0; $j <= $df + .05; $j += $dg) { echo '<TD align="center" bgcolor="'.$color_b[$c].'">'; $h = humid($i, $j, $atm, $ckw, false, $rdh); if ($h > $limit[$rdh]) { switch ($dt) { case 0: printf ("%1.0f", $h); break; case 1: printf ("%1.1f", $h); break; case 2: printf ("%1.2f", $h); break; case 3: printf ("%1.3f", $h); break; } } else { echo '--'; } $c = 1 - $c; if (($ckf) and ($i <= 0)) { $h = humid($i, $j, $atm, $ckw, true, $rdh); echo '<BR><font color="#cc0000">('; if ($h > $limit[$rdh]) { switch ($dt) { case 0: printf ("%1.0f", $h); break; case 1: printf ("%1.1f", $h); break; case 2: printf ("%1.2f", $h); break; case 3: printf ("%1.3f", $h); break; } } else { echo '--'; } echo ')</font>'; } echo '</TD>'; } echo '</TR>'; } ?> <TR> <TD colspan="<?php echo $n_col + 1; ?>" align="right"> <?php if ($ckw) { echo '<b>通風計用</b>'; echo '<IMG src="img/Image2.gif" width="20" height="4" border="0">'; } echo '単位:'.$s_unit[$rdh]; if (($atm < 1010) or ($atm > 1016)) { echo '<IMG src="img/Image2.gif" width="20" height="4" border="0">'; echo '<b>大気圧:'.$atm.'hPa</b>'; } if (($tt0 <= 0) and ($ckf)) { echo '<IMG src="img/Image2.gif" width="20" height="4" border="0">'; echo '<font color="#cc0000">湿球凍結時:(括弧内)</font>'; } ?> </TD> </TR> <TR> <TD colspan="<?php echo $n_col + 1; ?>" align="right">http://hum.uah.jp/table.php</TD> </TR> </TBODY> </TABLE> <P> <IMG src="BBY_icn4.gif" width="32" height="32" border="0"> <A href="http://d.hatena.ne.jp/owl/19760704">熾火研究所</A>謹製 v1.0/2008/01/01<br> </P> </BODY> </HTML>
データベース使ってないからいろいろと酷い
おまけ
「さかさまにするよ!」( http://hum.uah.jp/r.php )の PHP ソース
r.php
<?php echo '<?xml version="1.0" encoding="utf-8"?>' . "\n"; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META name="GENERATOR" content="Mery 1.0.2.1671 for Windows"> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>さかさまにするよ!</TITLE> </HEAD> <BODY bgcolor="#eeffcc"> <P><b>さかさまにするよ</b> <font color="#cc3399">PHP版</font><BR> <?php function mb_strrev($str,$encoding) // Special TNX to http://ja.doukaku.org/comment/2970/ { return mb_convert_encoding(strrev(mb_convert_encoding($str,"UTF-16BE",$encoding)),$encoding,"UTF-16LE"); } $st = "(゚ー゚ )さかさま"; if (($t == "")||($t != $st)) { $t = $_POST['t_org']; } if (($t == "")||($t == $st)) { $t = $_GET['t']; $t = mb_convert_encoding(rawurldecode($t), "UTF-8"); } if ($t == "") { $t = $st; } $yt = htmlspecialchars(mb_strrev($t, "UTF-8")); $xt = htmlspecialchars($t); ?> <FORM action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" accept-charset="UTF-8"> <INPUT size="25" type="text" name="t_org" tabindex="1" value="<?php echo $xt; ?>"><BR> <INPUT type="submit" accesskey="#" tabindex="3" name="btn_calc" value=" SUBMIT "><BR> <INPUT size="25" type="text" name="T_rev" tabindex="2" value="<?php echo $yt; ?>"><BR> </FORM> <p> <font size="2"> OkibiWorksLabo 謹製 2011/04/17<br><br> <a href="http://hum.uah.jp/r.php"><img src="qr_www_uah_jp_r_php.png" alt="QR Code"></a><br> 携帯でもOK</font> </p> </BODY> </HTML>