なんて物を作って見ました。

うぇ~やっとなんとか形になったよ。

まぁ某芸人さんのネタですよね(笑)
ちょっと古いかも?ってかテレビ見ないから今テレビ出てるかどうかも知らないけど(汗)
ちょうどいい練習のネタになりそうだから前から作ろうと思ってんたんだけどやっぱり同じような事やってる人がいました(笑)
まぁそれはPHPじゃなくてJavaScriptで電卓でもなかったんだけど。
だからあんまり参考にはならなかった。

ってなわけで、PHPプログラマ(なんて呼べるレベルじゃないけど)としての処女作品です
処女って言葉に反応してしまったアナタは変態です。

結構細部まで拘って色々改善してたらかなり時間掛かってしまった(汗)ハマった部分もあるし(汗)
一応、そこらのサイトを参考にしながらも自力で組み上げた!
ちゃんと携帯でも動くようにしてますんでご安心を(?)

使って見る?

まぁこういう物を含め、動的なページを精算できる物が俗に言うWebアプリケーションってやつですね。
このブログとかミクシィとかも勿論Webアプリケーションです。

ページの見た目はしょぼいけど昨日はちゃんとしてる…つもり。
まぁソースはめっちゃ汚いデス。
改良を重ねるごとにどんどん汚れていき…。
人並みにプログラムが出来る人が見たらハァ?な感じでしょう。

ってなわけでソースを公開&復習も含め解説…

とりあえずhtmlタグを含め全コードを公開
これをこのままテキストエディッタなんかにコピーして拡張子を.phpで保存すればうごくっちゃ動きます(笑)
ちなみに環境によって文字コードとかの問題はあるけど(汗)


<html>
<head>
<title>アホになる電卓</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
</head>
<body>
<div align="center"><font size="2">
<h1>アホになる電卓</h1>
<hr>
<?php
$x = (int)$_POST["x"];
$y = (int)$_POST["y"];
$e = $_POST["e"];
$n = '<img src="./n.gif" alt="普通" style="border: none;" />';

if (isset($_POST["x"]) === false && isset($_POST["y"]) === false) {
	$x = "";
	$y = "";
	$a = $n."?".$n;
} else {
	$etd = " selected";
	$tsuku = $_POST["tsuku"];
	$tsuku_t["$tsuku"] = " selected";
	$baisu = $_POST["baisu"];
	$baisu_t["$baisu"] = " selected";

	switch ($e) {
		case 0:$a = $x + $y;$et[0] = $etd;break;
		case 1:$a = $x - $y;$et[1] = $etd;break;
		case 2:
			if($x == 0 || $y == 0){$a=0;}
			else{$a = $x * $y;}
			$et[2] = $etd;
			break;
		case 3:
			if($x == 0 || $y == 0){$a=0;}
			else{$a = $x / $y;}
			$et[3] = $etd;
			break;
		case 4:
			if($x == 0 || $y == 0){$a=0;}
			else{$a = $x % $y;}
			$et[4] = $etd;
			break;
	}

	$aho = '<img src="./aho.gif" alt="アホ" style="border: none;" />';

	if ($tsuku != "none" && $baisu != "none") {
		if ($baisu == 0) {
			if ($a === 0) {
				$A = 0;
			} else {
				$A = "aho";
			}
		} else {
			$A = $a / $baisu;
		}
		if (strpos($a,$tsuku) !== false && is_int($A) !== true) {
			$a = $aho.$a.$n;
		} elseif (strpos($a,$tsuku) === false && is_int($A) === true) {
			$a = $n.$a.$aho;
		} elseif (strpos($a,$tsuku) !== false && is_int($A) === true) {
			$a = $aho.$a.$aho;
		} else {
			$a = $n.$a.$n;
		}
	} elseif ($tsuku != "none" && $baisu == "none") {
		if (strpos($a,$tsuku) !== false) {
			$a = $aho.$a.$n;
		} else {
			$a = $n.$a.$n;
		}
	} elseif ($tsuku == "none" && $baisu != "none") {
		if ($baisu == 0 || $a == 0) {
			if ($a === 0) {
				$A = 0;
			} else {
				$A = "aho";
			}
		} else {
			$A = $a / $baisu;
		}
		if (is_int($A) === true) {
			$a = $n.$a.$aho;
		} else {
			$a = $n.$a.$n;
		}
	} else {
		$a = $n.$a.$n;
	}
}
?>
<form method="POST" action="./index.php">
<select name="tsuku">
<option value="none"></option>
<option value="0"<?php	echo $tsuku_t[0]; ?>>0</option>
<option value="1"<?php	echo $tsuku_t[1]; ?>>1</option>
<option value="2"<?php	echo $tsuku_t[2]; ?>>2</option>
<option value="3"<?php	echo $tsuku_t[3]; ?>>3</option>
<option value="4"<?php	echo $tsuku_t[4]; ?>>4</option>
<option value="5"<?php	echo $tsuku_t[5]; ?>>5</option>
<option value="6"<?php	echo $tsuku_t[6]; ?>>6</option>
<option value="7"<?php	echo $tsuku_t[7]; ?>>7</option>
<option value="8"<?php	echo $tsuku_t[8]; ?>>8</option>
<option value="9"<?php	echo $tsuku_t[9]; ?>>9</option>
</select>
の付く数の時左側が<br />
<select name="baisu">
<option value="none"></option>
<option value="0"<?php	echo $baisu_t[0]; ?>>0</option>
<option value="1"<?php	echo $baisu_t[1]; ?>>1</option>
<option value="2"<?php	echo $baisu_t[2]; ?>>2</option>
<option value="3"<?php	echo $baisu_t[3]; ?>>3</option>
<option value="4"<?php	echo $baisu_t[4]; ?>>4</option>
<option value="5"<?php	echo $baisu_t[5]; ?>>5</option>
<option value="6"<?php	echo $baisu_t[6]; ?>>6</option>
<option value="7"<?php	echo $baisu_t[7]; ?>>7</option>
<option value="8"<?php	echo $baisu_t[8]; ?>>8</option>
<option value="9"<?php	echo $baisu_t[9]; ?>>9</option>
</select>
の倍数だった時右側が<br />
<h3>アホ</h3>になります。<br /><br />
<input type="text" size="3" name="x" value="<?php	echo $x; ?>" istyle="4" format="N" MODE="numeric" style="ime-mode:disabled">
<select name="e">
<option value="0"<?php	echo $et[0]; ?>>+</option>
<option value="1"<?php	echo $et[1]; ?>>-</option>
<option value="2"<?php	echo $et[2]; ?>>×</option>
<option value="3"<?php	echo $et[3]; ?>>÷</option>
<option value="4"<?php	echo $et[4]; ?>>…</option>
</select>
<input type="text" size="3" name="y" value="<?php	echo $y; ?>" istyle="4" format="N" MODE="numeric" style="ime-mode:disabled">
 = <?php	echo $a; ?><br />
<input type="submit" name="soushin" value="計算">
</form>
<hr>
by まきまき(<a href="http://gyaku.zombie.jp/">gyaku.zombie.jp</a>)
</font></div>
</body>
</html>

といった感じです…。
かなり無駄だらけってかif文使い過ぎだよね…。もっといい方法があると思われます。
うーん…。

解説はめんどくさくなったからやーめた(笑)

上級プログラマのみなさん、もしもこんな酷いソースをご覧になってここはこうだろバカ!ってところがあったらアドバイス諸々頂けたら泣いて喜ぶかもしれません(笑)

同じ処理するのに違う方法とってるのは色んな方法を試すため…と言うわけではなくあとから思いついただけです(笑)
まぁ勉強にもなるからいいデスね。

No related posts.