發表文章

目前顯示的是 3月, 2016的文章

存取伺服器端的路徑

PHP裡面提供了basename()、pathinfo()、realpath()等函式可以用來存取伺服器的路徑 basename()_取得檔案名稱 <html>  <body>    <?php    $path = $_SERVER['PHP_SELF'] ;  //$_SERVER['PHP_SELF'] 是內建的伺服器變數                                     //這裡使用path變數來存放檔案名稱的資訊    echo basename($path).'</br>' ;          echo basename($path,'.php').'</br>'; //後面第二個參數可用來排除副檔名    echo $_SERVER['PHP_SELF'].'</br>' ;  //如果直接使用$_SERVER['PHP_SELF']會顯示出完整路徑    echo $path ;                         //使用$path結果也是一樣的    ?>  </body> </html> 檔案輸出結果: file.php file /php&mysql_practice/file.php /php&mysql_practice/file.php pathinfo()_取得路徑資訊 <html> <head>   <meta http-equiv="content-type" content="text/html ; charset = utf-8 "> </head>  <body>    <?php     $path = $_SERVER['PHP_SELF'] ; $path_apart = pathinfo($path) ; echo '目前網頁路徑 :'.$path

陣列反向排序

圖片
宣告一個陣列(5,8,2,3,7,6,9,1,4,8,3,0),然後以顛倒的順序將前六項整數輸出 輸出結果: Array ( [0] => 5 [1] => 8 [2] => 2 [3] => 3 [4] => 7 [5] => 5 [6] => 9 [7] => 1 [8] => 4 [9] => 8 [10] => 3 [11] => 0 ) [0]=>0 [1]=>3 [2]=>8 [3]=>4 [4]=>1 [5]=>9

算陣列平均值

圖片
宣告一個陣列(5,8,2,3,7,6,9,1,4,8,3,0),然後計算這些元素的平均值 輸出結果: Array ( [0] => 5 [1] => 8 [2] => 2 [3] => 3 [4] => 7 [5] => 5 [6] => 9 [7] => 1 [8] => 4 [9] => 8 [10] => 3 [11] => 0 ) 陣列總平均值為:4.5833333333333

找出陣列中最大值與最小值

圖片
宣告一個陣列(5,8,2,3,7,6,9,1,4,8,3,0),然後在陣列中搜尋最大值與最小值,並將其鍵顯示在網頁上 輸出結果: Array ( [0] => 5 [1] => 8 [2] => 2 [3] => 3 [4] => 7 [5] => 5 [6] => 9 [7] => 1 [8] => 4 [9] => 8 [10] => 3 [11] => 0 ) 最大值是:鍵:[6] => 9 最小值是:鍵:[11] => 0

使用print_r() 輸出陣列

PHP print_r 輸出陣列 PHP print_r 用來印出陣列( PHP Array )的內容,這裡的印出是照函數字面上的白話說法,意思是在螢幕上顯示出來,單純的用  echo  也可以將陣列的元素一一輸出,但一次要將整個 Array 輸出,最好還是使用 print_r 函式比較方便。 PHP print_r 語法範例 print_r ( 要輸出的陣列放這裡 , bool $return ) 語法結構中前面的陣列一定要放,沒放當然毫無意義,至於後面的 bool $return 則是 PHP 4.3.0 之後才有的,如果設為 true 則 print_r 不會將陣列印在頁面上,這個部分是非必要項目,請看以下範例。 PHP print_r 實做範例 <?php  $Arr = array ('A' => 'apple', 'B' => 'banana');  print_r($Arr);  // 第一次印出陣列  print_r($Arr, true);  // 不會印出陣列  $result=print_r($Arr, true);  echo $result;  // 第二次印出陣列 ?> 輸出結果:Array ( [m] => monkey [foo] => bar ) Array ( [m] => monkey [foo] => bar ) 範例中一開始先準備了一個陣列 $Arr,透過 print_r 將其印出來,接著下一行我們在 print_r 中加入了 true,結果就無法印出陣列。不過當我們將 print_r($Arr, true); 存成 變數 ,再透過 echo 直接印出來就出現在頁面上了,所以最終的輸出結果只有呈現兩個 Array。 當使用了 $result=print_r($Arr, true); 這樣的寫法時,$result 就包含了 print_r 的輸出結果。 延伸閱讀 PHP Array() 陣列函數用法 PHP array_keys PHP array_values PHP array_count_values PHP print 輸出字串 PHP echo PHP print 與 print_

陣列相關函數

相關參考 參見  is_array() , explode() , implode() , split() , preg_split()  和  join() 。 【譯者注】本節中出現的“結合陣列”指的是鍵名為字串的陣列,“索引”和“鍵名”指的是同一樣東西。 目錄 array_change_key_case  -- 傳回字串鍵名全為小寫或大寫的陣列 array_chunk  -- 將一個陣列分割成多個 array_count_values  -- 統計陣列中所有的值出現的次數 array_diff  -- 計算陣列的差集 array_fill  -- 用給定的值填充陣列 array_filter  --  用回調函式過濾陣列中的單元 array_flip  -- 反轉陣列中的鍵和值 array_intersect  -- 計算陣列的交集 array_key_exists  -- 檢查給定的鍵名或索引是否存在於陣列中 array_keys  -- 傳回陣列中所有的鍵名 array_map  --  將回調函式作用到給定陣列的單元上 array_merge_recursive  -- 遞歸地合並兩個或多個陣列 array_merge  -- 合並兩個或多個陣列 array_multisort  -- 對多個陣列或多維陣列進行排序 array_pad  --  用值將陣列填補到指定長度 array_pop  -- 將陣列最後一個單元彈出(出棧) array_push  --  將一個或多個單元壓入陣列的末尾(入棧) array_rand  --  從陣列中隨機取出一個或多個單元 array_reduce  --  用回調函式迭代地將陣列簡化為單一的值 array_reverse  --  傳回一個單元順序相反的陣列 array_search  --  在陣列中搜索給定的值,如果成功則傳回相應的鍵名 array_shift  --  將陣列開頭的單元移出陣列 array_slice  -- 從陣列中取出一段 array_splice  --  把陣列中的一部分去掉並用其它值取代 array_sum  --  計算陣列中所有值的和 array_unique  -- 移除陣列中重複的值 array_u

關於陣列運算子

範例 名稱 說明 $a + $b 聯集 $a和$b的聯集 $a == $b 相等 $a和$b有相同的Key和Value時為TRUE $a === $b 完全相等 $a和$b有相同的Key和Value且型別和順序皆相同時為TRUE $a != $b 不相等 $a和$b沒有相同的Key和Value時為TRUE $a <> $b 不相等 $a和$b沒有相同的Key和Value時為TRUE $a !== $b 不完全相等 $a和$b沒有相同的Key和Value或型別或順序不相同時為TRUE +運算子會將右邊陣列的元素加入左邊陣列,遇到相同的鍵時不做覆寫 ex. <?php     $a = array(0=>'台北',1=>'紐約');     $b = array(0=>'巴黎',1=>'羅馬',2=>'東京');          $c = $a + $b ;     foreach($c as $Value)          echo $Value.'</br>' ; ?> 輸出結果: 台北 紐約 東京

關於exit()函式

當我們要強制離開某程式碼區塊的時候我們可以使用break,但若是我們要強制離開程式終止其執行的話就得使用exit()這個函式了 exit()函式會有一個參數,當 參數為字串時,會強制終止程式並在網頁上顯示字串 ex.  exit('程式錯誤,強制離開!') 參數為0~254的整數時:會強制終止程式但不會在網頁上顯示訊息,整數參數代表的是錯誤碼 note:exit()與die()函式是相同的函式!(曾經在某處PHP面試的題目中看過這個題目)

break與continue

break敘述可以用來強制離開迴圈(for、while、do...while)等程式碼區塊 continue敘述可以用來在迴圈內跳過後面的敘述,直接返回迴圈的開頭 note:直接用中文意思 斷開 與 持續 來思考,使用方法就很清楚了

關於PHP陣列

PHP所支援的陣列屬於「結合陣列」(associate array),有別於C、C++、java、C#等程式語言所支援的「 向量陣列 」(vector array),在向量陣列中,陣列的大小通常需要事先宣告,每個元素的 型別必須相同 ,同時只能透過 整數的鍵值 進行存取,其優點是存取效率佳,因為編譯程式已經事先根據陣列的大小及元素的型別配置記憶體空間給陣列,自然可以快速計算出所要存取的元素位置。 相反的,在 結合陣列 中, 陣列的大小無須事先宣告 ,每個 元素的型別不一定要相同 ,同時可以透過 整數鍵或字串鍵 進行存取,因此PHP的編譯程式不會事先配置記憶體空間給陣列,而是在使用者新增元素時,再配置記憶體空間給該元素。 其他注意事項: 除了中括弧[]之外,也可以使用大括弧{}存取陣列元素,但理想上還是使用[ ]。 當使用布林資料作為陣列鍵時,True會轉換成1,而False會轉換成0。 當使用NULL作為陣列鍵時,NULL會轉換成空字串。 當將integer、float、boolean、string、resoure等型別的資料轉換成陣列時,會得到一個包含一個元素的陣列,而元素鍵值為0,該資料為其值。 當NULL轉換成陣列時,回得到空陣列。 當陣列的 鍵為常數或變數 時, 不能在其前後加上單引號 ,否則PHP將不會去解譯該常數或變數。 重點總結 在PHP陣列 ($array[鍵值] = 'value' ;)中: 鍵值可以是整數或是變數也可以是字串 當鍵值為常數或變數時,不能加上單引號 每個元素型別不一定要相同 參考資料來源: PHP&MySQL 案例開發實戰手冊

計算所得稅

圖片
撰寫一個PHP網頁,令它根據下列累計稅率計算個人綜所稅,然後在網頁上顯示所得淨額200萬應該繳交多少個人綜所稅: 輸出結果: 所得淨額1130001~2260000元,累計稅率20% 應繳交個人所得稅:400000元

do_while迴圈練習_繩子對折

圖片
撰寫一個php網頁,令它計算長度1000公尺的繩子,每天對折一次,幾天之後繩子的長度將小於3公尺,然後顯示在網頁上: 輸出結果: 1000公尺的繩子,每天對折一次X天後繩子長度將少於3公尺 答案是:9天

switch練習_計算郵資

圖片
撰寫一個php網頁,令它根據下列公式計算郵資,例如重量為700公克的信函應該繳交108元的郵資,若超過2000公克,就顯示無法處理訊息: 不逾20公克                    郵資7元 逾20公克不逾100公克                                  郵資17元 逾100公克不逾250公克                                郵資32元 逾250公克不逾500公克                                郵資62元 逾500公克不逾1000公克                              郵資108元 逾1000公克不逾2000公克                            郵資176元 輸出結果:    逾500公克不逾1000公克!郵資108元! 心得: 這次稍微做出有點互動式感覺的網頁 但第一次使用$_POST[]函數我居然手殘把他打成$_GET[] 還在那邊debug半天才發現原來我根本打錯 再加上這兩個函數本來就都可以使用我才沒有發現 另外發現了兩件事情 switch使用上case '1' or case 1 好像都可以沒什麼分別 $_POST[num]  or   $_POST['num'] 似乎也是可以的

do_while迴圈練習

圖片
撰寫一個PHP網頁,令它使用do...while迴圈找出1~200之間可以被13整除的數字,並將它顯示在網頁上: 輸出結果: 1~200間可以被13整除的數字有: 13 26 39 52 65 78 91 104 117 130 143 156 169 182 195

for迴圈計算公式

圖片
撰寫一個for迴圈計算下列公式,然後將結果顯示在網頁上: (1/2)^1+(1/2)^2+(1/2)^3+(1/2)^4+(1/2)^5+(1/2)^6+(1/2)^7+(1/2)^8  輸出結果: (1/2)^1+(1/2)^2+(1/2)^3+(1/2)^4+(1/2)^5+(1/2)^6+(1/2)^7+(1/2)^8 =0.5+0.25+0.125+0.0625+0.03125+0.015625+0.0078125+0.00390625= 0.99609375