標籤:http io ar os 使用 sp for strong 檔案
課時109 list()函數的文法結構
1.list在等號左邊,等號後邊只能是一個數組.
2.list:將數組中的元素轉為變數使用
3.list:數組中有幾個元素,list中就有幾個參數,而且參數一定是變數. 不過參數可以少, 那麼數組的元素就沒有了.
4.只能將索引數組轉為變數,而且必須是連續的.
5.可以在list參數中通過空項選擇性的接收數組中的元素.
課時110 each()函數的特性
1.each()只是一個函數,參數就是一個數組作為參數,返回的值也是一個數組.
2.返回的值是一個數組,數組固定有4個元素,而且下標也是固定的. 1(值) value(值) 0(下標) key(下標)
3.ecah()只處理當前的元素,將當前的元素轉為數組資訊.處理完後,指標向下一個元素移動.
4.如果指標已經在結束位置,如果再使用each()擷取元素,返回false.
課時111 使用list( )、each( )和while迴圈遍曆數組 1.
$arr = array("sce","zaj","vicky","coin");
while( list($key,$value) = each($arr) ){
echo "{$key} => {$value} <br>"; }
reset($arr); //重設指標
echo "<hr>";
$arr = array("sce","zaj","vicky","coin");
while( list($key,$value) = each($arr) )
{ echo "{$key} => {$value} <br>"; }
課時112 使用數組的內部指標控制函數遍曆數組
1.next():指標移動下一位 prev():指標向前移動一位 end():指標移動到最後 reset():指標移動到開頭 key():取得當前的key current():取得當前的value
課時113 PHP超全域數組(預定義變數)概述
超全域數組:在PHP的指令碼中,已經聲明完的變數,你可以直接使用,變數的名字已經規定好了.
1.$_SERVER 伺服器變數
2.$_ENV 環境變數
3.$_POST HTTP POST變數
4.$_GET HTTP GET變數
5.$_REQUEST REQUEST變數
6.$_FILES HTTP上傳檔案變數
7.$_COOKIE
8.$_SESSION 會話變數
9.$GLOBALS
一.數組(關聯陣列),和自己聲明的數組是一樣的操作方式
二.全域: 三:超: 每個預定義數組都有獨特的能力
課時114 伺服器變數$_SERVER和環境變數$_ENV
// 定義一個函數getIP()function getIP(){global $ip;if (getenv("HTTP_CLIENT_IP"))$ip = getenv("HTTP_CLIENT_IP");else if(getenv("HTTP_X_FORWARDED_FOR"))$ip = getenv("HTTP_X_FORWARDED_FOR");else if(getenv("REMOTE_ADDR"))$ip = getenv("REMOTE_ADDR");else $ip = "Unknow";return $ip;} // 使用方法:echo getIP();
getenv("REMOTE_ADDR")用來取得用戶端的 IP 位址,但如果用戶端是使用Proxy 伺服器來訪問,那取到的就是Proxy 伺服器的 IP 位址,而不是真正的用戶端 IP 位址。要想透過Proxy 伺服器取得用戶端的真實 IP 位址,就要使用 getenv("HTTP_X_FORWARDED_FOR") 來讀取。 但是如果用戶端沒有通過Proxy 伺服器來訪問,那麼用getenv("HTTP_X_FORWARDED_FOR") 取到的值將是空的。 else if(getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR"); 表示如果getenv("HTTP_X_FORWARDED_FOR") 取到的值存在不為空白(即用戶端使用Proxy 伺服器的情況下),則變數$ip等於getenv("HTTP_X_FORWARDED_FOR") 取到的真實IP值。 如果上面的else if(getenv("HTTP_X_FORWARDED_FOR"))取得的值為空白(即沒有使用Proxy 伺服器),則不會執行下面的$ip = getenv("HTTP_X_FORWARDED_FOR");這一行語句。 這種情況下已經確認用戶端沒有使用Proxy 伺服器,從而通過 else if(getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR"); 這兩行語句獲得用戶端的IP地址也是真實的IP地址。
php中getenv()和$_SERVER的用法區別:
getenv 取得系統的環境變數,環境變數的格式為name=value.
文法: string getenv(string varname);
傳回值: 字串 函數種類: PHP 系統功能
內容說明
若正確取得環境變數 varname,則返回變數值.失敗則返回 false.
下例可以取得使用者瀏覽器所在機器的網址
<?php
$ip = getenv(“REMOTE_ADDR”);
?>
$_SERVER是伺服器超級全域變數數組 用$_SERVER[‘REMOTE_ADDR‘]同樣可以擷取到用戶端的IP地址.
二者的區別在於,getenv不支援IIS的isapi方式啟動並執行php
2. function getip() { if(!empty($_SERVER["HTTP_CLIENT_IP"])){ return $_SERVER["HTTP_CLIENT_IP"]; }else if(!empty($_SERVER["HTTP_X_FORWARD_FOR"])){ return $_SERVER["HTTP_X_FORWARD_FOR"]; }else if(!empty($_SERVER["REMOTE_ADDR"])){ return $_SERVER["REMOTE_ADDR"]; }else{ return "noknow"; } } echo getip();
課時115 PHP超全域數組介紹1
1.$_GET 接收使用者通過url向伺服器傳的參數
2.$_POST 接收使用者通過HTTP協議向伺服器傳的參數
課時116 PHP超全域數組介紹2
課時117 PHP常用數組函數的分類
課時118 PHP數組中與鍵和值有關的操作函數1
1.array_value() 使數組變成索引數組,返回數組所有的值
2.array_keys() 使數組變成索引數組,返回數組所有的鍵名
課時119 PHP數組中和索引值搜尋相關的函數2
1.in_array(值,數組,[true]) 判斷值是否在數組中.區分大小寫,第三個參數添加後連類型都得相等.
2.array_search() 在數組中搜尋給定的值,如果成功返回索引值
3.array_key_exists() 按給定鍵名尋找是否存在數組中
4.isset() 如果數組裡是空的, 它會返回假. 所以不夠準確.
課時120 PHP數組中與鍵和值有關的操作函數3
1.array_filp()
把一個數組的鍵和值交換,產生一個新的數組.如果值有重複,那麼後面的值會把前面的內容給覆蓋.這個函數的原始數組裡存的只能是字串和整數.
2.array_reverse()
倒序數組,把原來的數組順序逆序,然後產生新數組.
第二個參數如果是true,那麼雖然是逆序,但是索引值對還是原來的. (必須是索引數組才看的出來)
課時121 PHP數組中統計數組元素的個數與唯一性的函數
1.count() 如果用來計算字串,只會輸出 int 1,所以不能用來計算字串.字串用strlen();
2.count(數組,[1])可以遞迴計算數組,也就是計算多維陣列,只要第二個參數傳一個1就可以了, 預設0是不計算.
3.array_count_values()
計算數組中所有值出現的次數
4.array_unique()
把數組中的值重複的給刪除,只保留第一次出現的.
課時122 PHP使用回呼函數處理數組的函數array_filter()
1.array_filter()
用回呼函數過濾數組中的單元. 預設時元素中被認為是假的值都過濾掉. 添加第二個參數後可以定義過濾的方式,用回呼函數.
課時123 PHP使用回呼函數處理數組的函數array_walk()
1.array_walk()
對數組中的每個成員應用使用者函數.第一個參數是數組,第二個參數是操作, 可以是一個回呼函數.
課時124 PHP使用回呼函數處理數組的函數array_map()
1.array_map(回呼函數,數組)
將回呼函數作用到給定數組上.
arrar_may(null,$arr,$brr); 會使數組變成二維數組.使$arr,$brr合并.
課時125 PHP中的冒泡(起泡)排序演算法
<?php
$arr = array(0,1,2,3,4,5,6,7,8);
function maopao($arr){
$len = count($arr)-1;
for($i = 0; $i < $len; $i++){
for($j = 0;$j < $len-$i;$j++){
if($arr[$j] < $arr[$j+1]){
$tmp = $arr[$j+1];
$arr[$j+1] = $arr[$j];
$arr[$j] = $tmp;
}
}
}
return $arr;
}
課時126 PHP 二分法進行快速排序的原理
PHP課程筆記5