本地環境搭建,選用wamp集成軟件,編輯器選用notepad++,項目放在C:\wamp\www\wendy目錄下,新建index文件,經過http://localhost/wendy/index,經過編寫實例熟悉PHP經常使用函數。php
一,字符串經常使用函數學習數組
//在UTF-8編碼中,一個英文字母字符存儲須要1個字節,一個漢字字符儲存須要3到4個字節編輯器
//獲取部分字符串mb_substr,按字符函數
//在UTF-8編碼中,一個英文字母字符存儲須要1個字節,一個漢字字符儲存須要3到4個字節學習
1.獲取部分字符串mb_substr,按字符測試
echo mb_substr('hanyunihao',1,2);this
/**編碼
*從第一位開始取兩位加密
*輸出結果an.net
*
*/
echo mb_substr('hanyunihao',0,-2);
/**
*去掉最後兩位
*輸出結果hanyunih
*
*/
echo mb_substr('hanyunihao',-5,2);
/**
*從倒數第五位開始取兩位
*輸出結果ni
*
*/
echo mb_substr('韓大你好',1,3);
/**
*輸出結果大你好
*
*/
2.獲取部分字符串mb_strcut,按字節
echo mb_strcut('韓大你好',1,7);
/**
*輸出結果韓大
*
*/
3.獲取內部編碼 mb_internal_encoding
// mb擴展是php的一個處理寬字符(例如:中文,日文,韓文等)函數庫
echo mb_internal_encoding();
/**
*輸出結果UTF-8
*
*/
4.str_replace//適用數組和字符串
echo str_replace("hanyu","wanzi","hanyunihao");
/**
*中間爲替換量,須要三個參數,可選擇四個,能夠替換一個或多個變量,可用於去除換行符
*輸出結果wanzinihao
*/
$res = "he is handsome !";
$old = array("he","handsome");
$new = array("she","good");
echo str_replace($old,$new,$res);
/**
*輸出結果she is good !
*/
echo str_replace("h","sh","he is handsome",$count);
/**
*輸出結果she is shandsome;
*/
5.str_replace("h","sh","he is handsome",$count);
echo $count;
/**
*輸出結果2;
*/
$search = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);
/**
*輸出結果F;
*/
//str_ireplace 不區分大小寫
6.substr_replace ,必傳入3個參數,第四個可不傳,後面兩個決定替換哪些內容
res = "he is handsome !";
echo substr_replace($res,"sh",0);
/**
*sh代替整個字符串
*輸出結果sh;
*/
echo substr_replace($res,"sh",0,1);
/**
*從0開始替換兩個字符
*輸出結果she is handsome;
*/
echo substr_replace($res,"sh",0,-5);
/**
*sh距離結尾有五個長度
*輸出結果shome !;
*/
echo substr_replace($res,"sh",6,-5);
/**
*插入字符串距離開始六個長度,結尾五個長度
*輸出結果he is shome !
*/
7.mb_strlen 獲取字符串的長度
$res = "he is handsome !";
echo mb_strlen($res);
/**
*輸出結果16
*/
$res = "你好,歡迎來到武漢!";
echo strlen($res);
/**
*字節長度
*輸出結果29
*/
$res1 = "你好,歡迎來到武漢!";
echo mb_strlen($res);
/**
*字符長度
*輸出結果10
*/
echo iconv_strlen($res1,'UTF-8');
/**
*iconv函數能夠將一種已知的字符集文件轉換成另外一種已知的字符集文件
*輸出結果10
*/
echo iconv_strlen($res1);
/**
*輸出結果10
*/
8.Mcrypt加密擴展
//mcrypt_generic 加密
//mcrypt_generic_deinit 解密
9.strops查找字符串首次出現的位置,可看一個字符串是否在另外一個字符串中
echo strpos('hanyunihao','yun');
/**
*從0開始計算
*輸出結果3
*
*/
echo strpos('hanyunihao','a',4);
/**
*從偏移量開始算
*輸出結果8
*
*/
$pos=strpos('hanyunihao','m');
var_dump($pos);
/**
*從第一位開始取兩位,用 === 運算符來測試此函數的返回值。
*輸出結果false
*
*/
$pos = strpos('hanyunihao','yun');
if ($pos !== false) {
echo "success";
}
/**
*使用 !== 操做符。
*輸出結果success
*
*/
if ($pos !=false) {
echo "false";
}
/**
*由於 'a' 的位置是 0。語句 (0 != false) 的結果是 false。
*輸出結果false
*
*/
10.strrpos 指定字符串在目標字符串中最後一次出現的位置
echo strrpos('hanyunihao','a');
/**
*輸出結果8
*/
11.strrev()字符串反轉
echo strrev("you are handsome");
/**
*輸出結果emosdnah era uoy
*/
二,數組學習
1.str_split
$str="this is my best friend";
print_r( str_split($str,5));
/**
*每五個字符串打散成數組
*輸出結果Array ( [0] => this [1] => is my [2] => best [3] => frie [4] => nd )
*
*/
print_r( str_split($str,0.5));
/**
*輸出結果false
*
*/
$str2="他是個人好朋友";
print_r( str_split($str2,5));
/**
*按字節數轉換,而非字符數。
*輸出結果Array ( [0] => 他� [1] => �我� [2] => ��好 [3] => 朋� [4] => � )
*/
2.preg_split
$str='http://blog.csdn.net/hsd2012/article/details/51152810';
$pattern='/\//';
$str=preg_split ($pattern, $str);
print_r($str);
/**
*按照/分割。preg按照正則規則
*輸出結果Array ( [0] => http: [1] => [2] => blog.csdn.net [3] => hsd2012 [4] => article [5] => details [6] => 51152810 )
*/
3.explode
$str = "this is my friend";
$res = explode("s",$str);
print_r($res);
/**
*按照s分割,s不顯示
*輸出結果Array ( [0] => thi [1] => i [2] => my friend )
*/
$res = explode("",$str);
print_r($res);
/**
*分割位置爲空
*輸出結果false
*/
$res = explode(" ",$str);
print_r($res);
/**
*按空格分割
*輸出結果Array ( [0] => this [1] => is [2] => my [3] => friend )
*/
4.implode
$array = array('this', 'is', 'my');
$str = implode(";", $array);
print_r($str);
/**
*按照分號隔開
*輸出結果this;is;my
*/
5.array_combine 操做兩個數組,一個數組值作爲鍵名,一個數組值做爲鍵值,兩個數組元素個數必須一致
$a = array('my','name','wendy');
$b = array('her','age','18');
$c = array_combine($a, $b);
print_r($c);
/**
*輸出結果Array ( [my] => her [name] => age [wendy] => 18 )
*/
6.array_merge 將一個或多個數組的單元合併起來,一個數組中的值附加在前一個數組的後面。返回做爲結果的數組。
$array1=array('boy'=>'poll','1'=>'wuhan');
$array2=array('boy'=>'jack','1'=>'math','girl'=>'rose');
$res = array_merge($array1,$array2);
print_r($res);
/**
*字符串被覆蓋,數字鍵名不會被覆蓋,鍵名從新排列
*輸出結果Array ( [boy] => jack [0] => wuhan [1] => math [girl] => rose )
*/
7.array_merge_recursive
/**
*字符串被覆蓋,數字鍵名不會被覆蓋,鍵名從新排列
*輸出結果Array ( [boy] => jack [0] => wuhan [1] => math [girl] => rose )
*1.對於相同的字符串索引,
*array_merge則會用後面的值覆蓋前面出現的值;
*+會用前面出現過的值覆蓋後面相同的key;
*array_merge_recursive則會把相同的索引放到一個數組裏面,增長數組的維度;
*2.對於相同的數字索引,
*array_merge則會給重複的值重建索引(索引值從0開始);
*+仍然是用前面出現過的值覆蓋後面的值;
*/
$array1=array('boy'=>'poll','1'=>'wuhan');
$array2=array('boy'=>'jack','1'=>'math','girl'=>'rose');
print_r(array_merge_recursive($array1,$array2));
/**
*相同的索引放到一個數組裏面,增長數組的維度;
*輸出結果Array ( [boy] => Array ( [0] => poll [1] => jack ) [0] => wuhan [1] => math [girl] => rose )
*/
8.array_slice 從數組中取出一段
print_r(array_slice($array2,-2,2,true));
/**
*保留數字鍵,從倒數第二個開始,具備兩個單元格
*輸出結果Array ( [1] => math [girl] => rose )
*/
9.array_change_key_case 將數組鍵名改成大寫或小寫
$example = array('this'=>1,'Is'=>2,'my'=>3,'fRiend'=>4);
print_r(array_change_key_case($example,CASE_UPPER));
/**
*可設置大小寫
*輸出結果Array ( [THIS] => 1 [IS] => 2 [MY] => 3 [FRIEND] => 4 )
*/
$example = array('this'=>1,'Is'=>2,'is'=>3,'fRiend'=>4);
print_r(array_change_key_case($example,CASE_LOWER));
/**
*鍵一致後前面的會被覆蓋
*輸出結果Array ( [this] => 1 [is] => 3 [friend] => 4 )
*/
10.array_chunk 將一個數組分紅多個
$example = array('this'=>1,'Is'=>2,'my'=>3,'fRiend'=>4);
print_r(array_chunk($example,3));
/**
*鍵名重置,默認是false,若設置爲true,保留鍵名
*Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 3 ) [1] => Array ( [0] => 4 ) )
*/
11.array_column 返回數組中某一列
$example = array(
array(
'id' => 2135,
'first_name' => 'John',
'last_name' => 'Doe',
),
array(
'id' => 3245,
'first_name' => 'Sally',
'last_name' => 'Smith',
),
array(
'id' => 5342,
'first_name' => 'Jane',
'last_name' => 'Jones',
),
array(
'id' => 5623,
'first_name' => 'Peter',
'last_name' => 'Doe',
)
);
print_r(array_column($example,'id'));
/**
*輸出結果Array ( [0] => 2135 [1] => 3245 [2] => 5342 [3] => 5623 )
*/
print_r(array_column($example,'id','first_name'));
/**
*新數組鍵名鍵值均爲原數組的鍵值。
*Array ( [John] => 2135 [Sally] => 3245 [Jane] => 5342 [Peter] => 5623 )
*/
12.array_diff 計算數組差值
$example = array('this'=>1,'Is'=>2,'my'=>3,'fRiend'=>4);
$last = array('th'=>1,'Is'=>3,'hei'=>5,'fiend'=>4);
print_r(array_diff($example,$last));
/**
*在數組1中不在數組2中的值,只比較鍵值。
*輸出結果Array ( [Is] => 2 )
*/
13. array_diff_assoc()
print_r(array_diff_assoc($example,$last));
/**
*添加索引,根據索引一一對應比較,鍵名也對比
*輸出結果Array ( [this] => 1 [Is] => 2 [my] => 3 [fRiend] => 4
*/
14.array_unique 移除數組中重複的值
$example=array('a'=>"he","is",'c'=>"is",'m'=>"good");
print_r(array_unique($example));
/**
*輸出結果Array ( [a] => he [0] => is [m] => good )
*/
15.array_count_values 統計數組中全部的值
print_r(array_count_values($example));
/**
*數組的鍵是 array 裏單元的值; 數組的值是 array 單元的值出現的次數。
*輸出結果Array ( [he] => 1 [is] => 2 [good] => 1 )
*/
16.array_values 返回含全部值的索引數組。
print_r(array_values($example));
/**
*鍵名爲數值
*輸出結果Array ( [0] => he [1] => is [2] => is [3] => good )
*/
17.shuffle 打亂數組
var_dump(shuffle($example));
/**
*成功時返回布爾型變量
*輸出結果true;
*/
$example = array("he","is","is","good");
shuffle($example);
print_r($example);
/**
*成功時返回布爾型變量
*輸出結果Array ( [0] => is [1] => is [2] => good [3] => he )
*/
18.array_unshift 在數組開頭插入一個或多個單元 $example=array('a'=>"he","is",'c'=>"is",'m'=>"good");array_unshift($example,"hi","boy");print_r($example);/**;*返回值爲數組長度,原數組在數組開頭插入;*輸出結果Array ( [0] => hi [1] => boy [a] => he [2] => is [c] => is [m] => good )*/ ;19.array_push 在末尾插入元素$example1=array('a'=>"he","is",'c'=>"is",'m'=>"good");array_push($example1,"hi","boy");print_r($example1);/***輸出結果Array ( [a] => he [0] => is [c] => is [m] => good [1] => hi [2] => boy )*/ ;20.array_pop 末尾元素彈出$example2=array('a'=>"he","is",'c'=>"is",'m'=>"good");array_pop($example2);print_r($example2);/***輸出結果Array ( [a] => he [0] => is [c] => is )*/