需求:
1、執行指令碼後,想去的同學輸入英文名字全拼,產生隨機數01-99之間的數字,
數字越大就去參加項目實踐,前面已經抓到的數字,下次不能在出現相同數字。
2、第一個輸入名字後,螢幕輸出資訊,並將名字和數字記錄到檔案裡,程式不能退出
繼續等待別的學生輸入。
實現代碼(請在命令列執行,而非WEB環境):
<?php// 號碼庫$num = range(1, 99);// 隨機打亂shuffle($num);$filename = './user.txt';// 開啟記錄檔案$handle = fopen($filename, 'w');// 排序後的使用者列表$user = array();while (true) { echo "\r\nEnter your name:"; $content = read(); // exit 退出指令碼 if ($content == 'exit') { break; } // 取出隨機值 $n = array_pop($num); // 寫入檔案 fwrite($handle, $n.' '.$content."\r\n"); $user[$n] = $content; // 輸出到控制台 echo "Hi $content, your number is " . $n."\r\n";}// 關閉控制到輸入資料流fclose($GLOBALS['StdinPointer']);fwrite($handle, "\r\n");fwrite($handle, '----------------華麗的分隔線-----------------');fwrite($handle, "\r\n");ksort($user);foreach ($user as $k=>$v) { fwrite($handle, $k.' '.$v."\r\n");}// 關閉檔案fclose($handle);/*** 擷取命令列輸入值* @param string $length* @return string*/function read($length='255'){ if (!isset($GLOBALS['StdinPointer'])){ $GLOBALS['StdinPointer']=fopen("php://stdin","r"); } $line=fgets($GLOBALS['StdinPointer'],$length); return trim($line);}