想不想知道自己的「人品分數」?這篇文章分享一個經典的 PHP 趣味小程式,透過輸入姓名,利用字元 ASCII 碼運算得出一個 0 到 100 的分數,並附上幽默的評語。雖然純屬娛樂,但程式碼展示了表單處理、字串運算與條件判斷的基本技巧,適合初學者參考。
以下是完整的 HTML 與 PHP 混合程式碼,可直接儲存為 .php 檔案執行:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>算算你的人品</title>
<style type="text/css">
.btn{background:#fff; color:#005681;border-width:1px;padding-left:15px;padding-right:15px;vertical-align:middle}
.input{border:solid 1px #B6D9E3;padding:2px 0px 2px 1px;font-size:1.0em;vertical-align:middle}
</style>
</head>
<body>
<center><br><br><br><br><br><br>
<form method="GET">
輸入你的姓名來算算你的人品:<br>
<input type="text" name="name" maxlength=12 class="input">
<input type="submit" name="submit" value="我來看看" class="btn">
<input type="reset" name="reset" value="還是算了" class="btn">
</form></center>
<p align="center">程式製作:冷楓哥哥©1.01 </p>
<?php
/* 人品計算器 作者:陳文 2007.11.22 版本:1.01 */
function js(){
$name = $_GET['name'];
$name = htmlspecialchars($name);
echo "你的大名是:<font color=red>".$name."</font></br></br>";
$a = 0;
for($i = 0; $i < strlen($name); $i++){
$a += ord($name[$i]);
}
if($name == "高富帥"){ // 彩蛋:特定姓名直接滿分
$shuzi = 100;
}else{
$shuzi = ($a * 47 + 70) % 100;
}
echo $name."的得分是<font color=blue>".$shuzi."</font></br></br>";
function getValue($shuzi){
if ($shuzi == 0) {
echo "你一定不是人吧?怎麼一點人品都沒有?!";
} elseif (($shuzi > 0) && ($shuzi <= 5)) {
echo "算了,跟你沒什麼人品好談的...";
} else if (($shuzi > 5) && ($shuzi <= 10)) {
echo "是我不好...不應該跟你談人品問題的...";
} else if (($shuzi > 10) && ($shuzi <= 15)) {
echo "殺過人沒有?放過火沒有?你應該無惡不作吧?";
} else if (($shuzi > 15) && ($shuzi <= 20)) {
echo "你貌似應該三歲就偷看隔壁大媽洗澡的吧...";
} else if (($shuzi > 20) && ($shuzi <= 25)) {
echo "你的人品之低下實在讓人驚訝啊...";
} else if (($shuzi > 25) && ($shuzi <= 30)) {
echo "你的人品太差了。你應該有幹壞事的嗜好吧?";
} else if (($shuzi > 30) && ($shuzi <= 35)) {
echo "你的人品真差!肯定經常做偷雞摸狗的事...";
} else if (($shuzi > 35) && ($shuzi <= 40)) {
echo "你擁有如此差的人品請經常祈求佛祖保佑你吧...";
} else if (($shuzi > 40) && ($shuzi <= 45)) {
echo "老實交待..那些論壇上面經常出現的偷拍照是不是你的傑作?";
} else if (($shuzi > 45) && ($shuzi <= 50)) {
echo "你隨地大小便之類的事沒少幹吧?";
} else if (($shuzi > 50) && ($shuzi <= 55)) {
echo "你的人品太差了..稍不小心就會去幹壞事了吧?";
} else if (($shuzi > 55) && ($shuzi <= 60)) {
echo "你的人品很差了..要時刻克制住做壞事的衝動哦..";
} else if (($shuzi > 60) && ($shuzi <= 65)) {
echo "你的人品比較差了..要好好的約束自己啊..";
} else if (($shuzi > 65) && ($shuzi <= 70)) {
echo "你的人品勉勉強強..要自己好自為之..";
} else if (($shuzi > 70) && ($shuzi <= 75)) {
echo "有你這樣的人品算是不錯了..";
} else if (($shuzi > 75) && ($shuzi <= 80)) {
echo "你有較好的人品..繼續保持..";
} else if (($shuzi > 80) && ($shuzi <= 85)) {
echo "你的人品不錯..應該一表人才吧?";
} else if (($shuzi > 85) && ($shuzi <= 90)) {
echo "你的人品真好..做好事應該是你的愛好吧..";
} else if (($shuzi > 90) && ($shuzi <= 95)) {
echo "你的人品太好了..你就是當代活雷鋒啊...";
} else if (($shuzi > 95) && ($shuzi <= 99)) {
echo "你是世人的榜樣!";
} else if ($shuzi == 100) {
echo "天啦!你不是人!你是神!!!";
} else {
echo "你的人品竟然負溢出了...我對你無語..";
}
}
getValue($shuzi);
}
if($_GET['name']) js();
?>
</body>
</html>
執行後會顯示一個簡單的輸入框,輸入姓名送出即可看到分數與評語。

$_GET['name'] 接收表單資料,並用 htmlspecialchars() 防止 XSS。($sum * 47 + 70) % 100 得出 0-99 分;若輸入「高富帥」則直接給 100 分(彩蛋)。if-elseif 將分數對應到不同區間的幽默文字。此程式為教學範例,實際部署時建議: