程式
//2.1檢查變數值是否為有效數字
$session_name = "2.1檢查變數值是否為有效數字 ";
echo $session_name."<br>";
// is_int -> 檢查整數, is_float->檢查浮點數字, is_numeric->檢查字串裡為數字
$num1 = 'test';
if (is_float ($num1) || is_int($num1)) {
print '$num1 是數字 <br>';
}elseif (is_numeric ($num1)){
print '$num1 可能不是數字,但其內容為數值<br>';
}else {
print '$num1 既不是數字,也非數值字串<br>';
}
//2.2處理一連串數字
$session_name = "2.2處理一連串數字 ";
echo $session_name."<br>";
$x =10;
$y =20;
for ($i = $x; $i <= $y; $i++){
//$i 將會是$x到$y之間的整數
print "$i \n";
}
$items = array ( "Linux",
"Apache",
"PHP",
"A",
"SQL",
"Server",
"Talented",
"Administrator");
for ($i = 2; $i <=6; $i++){
print "$items[$i]<br>";
}
//2.10 設定數字輸出格式 number_format
$session_name = "2.10 設定數字輸出格式 ";
echo $session_name."<br>";
$num = 12500000.8356;
$num = number_format($num,2); //取到小數2位
print "$num<br>";
//2.11弧度與角度的轉換
$num1 = 90;
$num2 = 3.14;
$rad = deg2rad ($num1);
$deg = rad2deg ($num2);
print "角度 $num1 轉成弧度為 $rad <br>";
print "弧度 $num2 轉成角度為 $deg 度 <br>";
//2.13產生亂數
$session_name = "2.13產生亂數 ";
echo $session_name."<br>";
$items = array ( "Linux",
"Apache",
"PHP",
"A",
"SQL",
"Server",
"Talented",
"Administrator");
$rand_num = mt_rand(0,count ($items)-1);
print "rand items =>$items[$rand_num]";
// 2.14產生一個唯一的隨機數字 用檔案 @->忽略錯誤
$session_name = "<br>##2.14產生一個唯一的隨機數字 用檔案 ";
echo $session_name."<br>";
mt_srand ((double)microtime()*1000000);
$data = implode ("",file ('random_numbers.txt'));
$random_numbers = $data ? unserialize ($data) : array ();
$random =mt_rand();
while (@in_array ($random_numbers,$random));
$random = mt_rand();
@array_push ($random_numbers,$random);
$data = serialize ($random_numbers);
$fp = fopen ("random_numbers.txt",'w');
if (!$fp){
die ("Cannot open random_numbers.txt");
}
@fwrite ($fp,$data);
@fclose ($fp);
print "$random 為首次產生";
//2.15 亂數加權
$session_name = "<br>##2.15 亂數加權 ";
echo $session_name."<br>";
$ads = array ( "Linux" => 1,
"Apache" => 1,
"PHP" => 3,
"A" => 1,
"SQL" => 4,
"Server" => 10,
"Talented" => 1,
"Administrator" => 4
);
$j = 0;
foreach ($ads as $company => $weight){
for ($i = 0 ; $i < $weight ; $i++){
$dist [$j++] = $company;
//$j."<br>";
}
//echo $j."<br>";
}
srand((double)microtime()*1000000);
$rand_num = mt_rand(0,$j -1);
@shuffle($dist); //隨機排列陣列元素
$company = $dist [$rand_num ];
print "選擇的公司是:$company<br>";
//2.16 將今天日期載入陣列中
$session_name = "<br>##2.16 將今天日期載入陣列中 ";
echo $session_name."<br>";
$da = getdate();
$date = "$da[mon]/$da[mday]/$da[year]";
print $date."<br>";
$datestamp = date ("j/n/Y");
print $datestamp."<br>";
list ($month,$day,$year) = explode ('/',$date);
if (checkdate ($month,$day,$year)){
print "有效日期<br>";
}else{
print "無效日期<br>";
}
echo "<br>--------- 日期格式: 月 / 日 / 年 ex:09/06/2024 2024年9月6日 ------<br>";
$check_date = "13/06/2024";
$check_str = is_valid_date($check_date);
echo "$check_date<br>";
$check_str= ($check_str==1) ? "是" : "否";
echo "$check_str<br>";
function is_leap_year($year){
return ((($year%4)==0 &&($year%100)!=0)||($year%400)==0);
}
function is_valid_date ($date){
// 把日期拆開
list($month,$day,$year)=explode ('/',$date);
$month_days =array(31,28,31,30,31,30,31,31,30,31,30,31);
if ($month <1 || $month >12)
return false;
//年必須包含四位數字
if ((strlen($year)!=4) || eregi("[^0-9]",$year))
return false;
//若是閏年,二月將有29天
if (is_leap_year($year))
$month_days [1] == 29;
if ($day < 1 || $day > $month_days [$month-1] )
return false;
return true;
}
/2.22效能測試
$session_name = "<br>##2.22效能測試 ";
echo $session_name."<br>";
function get_microtime()
{
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = doubleval($mtime[1 ])+doubleval($mtime[0 ]);
return ($mtime);
}
$time1 = get_microtime();
for ($i=0; $i<99999; $i++){
$ar []=$i;
}
$time2 = get_microtime();
$diff = abs ($time2-$time1);
print "<br>For 迴圈:$diff 秒<br>";
$i =0;
unset ($ar);
$time1 = get_microtime();
while ($i<99999){
$ar [] = $i;
$i++;
}
$time2 = get_microtime();
$diff = abs ($time2-$time1);
print "<br>For 迴圈:$diff 秒<br>";