正則表達式php
1.替換正則表達式
$s = "hello5world"; $s = preg_replace("/\d/","#",$s); echo $s;
//輸出結果爲hello#world,數字被替換成了#。
//第一個數字是被替換的內容,"/\d/"表示正則表達式的數字。
//第二個參數是要用什麼來替換。
//第三個參數是要操做的數組。數組
2.拆分安全
//$s = "hello5world"; //$attr = preg_split("/\d/",$s); //按照正則表達式拆分 //var_dump($arr);
//第一個參數是按照什麼拆分,第二個參數是拆分哪一個字符串。
3.匹配服務器
//$s = "he8llo5wor6ld"; //$arr = array(); //preg_match("/\d/",$s,$arr); //匹配知足正則的第一個字符串,在這匹配出的是8(8)是字符串中的第一個數字。 //preg_match_all("/\d/",$s,$arr); //匹配全部知足正則的字符串,匹配出的是全部的數字(八、五、6)。 //第一個參數是按照什麼匹配 //第二個參數是匹配的數組 //第三個參數是另外一個數組,也能夠是空的數組,匹配完之後的數組放在此數組中。
數組函數
1.數組定義post
//$attr = array();//定義一個空的數組 //$attr = array(1,2,3,4);//定義一個有值的數組
2.賦值定義ui
/*$attr[0]="aa"; $attr[1]="bb"; echo $attr[1]; */
3.數組分類spa
(1)索引數組指針
/*$attr = array(1,2,3,4,5); print_r($attr);
(2)關聯數組
//$attr = array("code"=>101,"name"=>"張三","sex"=>"男");//code=>101表示賦值.code能夠稱爲key,101稱爲name。 //print_r($attr); //echo $attr["name"];
4.遍歷數組
(1)for循環遍歷,只能遍歷索引數組
//$attr = array("aa","bb","cc","dd");
/*for($i = 0;$i<count($attr);$i++) { echo $attr[$i]."<br>"; } */
(2)foreach遍歷,關聯和索引均可以遍歷.
//$attr = array("aa","bb","cc","dd"); /*foreach($attr as $v) { echo $v."<br>"; }*/
//只能遍歷出值
/*foreach($attr as $k=>$v) { echo $k."--".$v."<br>"; }*/
//能夠遍歷出key和value
$attr = array(1,2,3,4,5);
foreach($attr as $k=>$v)
{
if($v == 3)
{
unset($attr[$k]);//刪除一個元素或者刪除一個變量,不能直接unset($v),由於遍歷時是把數組裏面的數字3複製給$v的,刪除的是複製的,而不是數組裏面的。
}
}
$attr = array_values($attr);//從新索引,刪除數組元素裏面的3之後,索引值變爲0,1,3,4.從新索引後變爲0,1,2,3。
var_dump($attr);
//在其它語言中,使用foreach遍歷數組裏面的元素時,不能在foreach裏面刪除或者添加元素。只有php裏面能夠。
(3)使用each()和list()結合遍歷
//var_dump(each($attr));//取數組裏面當前指針指向的元素. //list($a,$b,$c,$d)=$attr;//寫在等號左邊的將數組裏面的元素交給一組變量,數組必須是索引數組。 //echo $c;
/*list($k,$v) = each($attr); echo $k; echo $v;*/
/*while(list($k,$v) = each($attr)); { echo "{$k}--{$v}<br>"; }*/
(4)使用指針遍歷
//var_dump(current($attr));//取當前指針指向的元素的值 //key($attr);//取當前指針指向的元素的key //next($attr);//將指針向後調一個 //prev($attr);//將指針向前調一個 //end($attr);//將指針向指向最後 //reset($attr);//將指針重置
/*var_dump(next($attr)); var_dump(next($attr)); var_dump(next($attr)); var_dump(next($attr));*/
/*while(next($attr)) { echo current($attr); echo key($attr); }*/
/*do { echo current($attr); echo key($attr); } while(next($attr)) */
預約義數組
1.$GLOBALS引用全局做用域中的全局變量
var_dump$GLOBALS()//$GLOBALS是一個數組,是系統自定義的,沒法修改的,必須大寫。表明全局變量的數組。
2.$_SERVER是服務器的信息
3.$_ENV表明環境變量
4.$_GET表明的是用戶用_GET方式傳遞的數據
<body> <form action="test.php" method="get"> <input type="text" name="uid" /> <input type="text" name="pwd" /> <input type="submit" value="提交" /> </form> </body>
//輸入數據提交之後會顯示提交的數據。var_dump($_get)能夠獲取提交的數據。
5.$_POST表明的是用戶用post方式傳遞的數據
method的方式和獲取的方式要對應。var_dump($_POST)
6.$_REQUEST也能夠獲取用戶傳遞的數據。
$_REQUEST能夠取GET方式傳遞的數據,也能夠取POST方式傳遞的數據。可是通常不要用$_REQUEST,相對的不安全。
7.$_FILES;是關於表單提交文件的。
<form action="text.php" method="post" enctype="multipart/form-date">//提交文件時須要寫上enctype屬性,提交方式要用post
8.$_SESSION
會話控制,保存用戶登陸信息的機制。若是登陸上一個頁面之後必定的時間沒有操做,刷新頁面後會要求從新登陸,這就是_SESSION的效果。它有一個固定的時間,事後登陸信息會清除。_SESSION存儲登陸信息存儲在服務器上。_SESSION的安全性會更好。
9.$_COOKIE
會話控制,保存用戶登陸信息的機制。若是登陸上一個頁面之後必定的時間沒有操做,刷新頁面後不須要從新登陸,這就是_COOKIE的效果。_COOKIE存儲登陸信息存儲在硬盤上。_COOKIE的安全性不如_SESSION。
其它經常使用函數
1.in_array( , );判斷某一個值是否是在這個數組裏面存在,括號裏面有兩個參數,第一個參數是是否存在的值,第二個參數是檢查的數組。
2.array_reverse();翻轉函數,括號裏面寫要翻轉的數組。
3.array_unique();刪除重複值,去重。
4.unset($attr[0]);刪除數組裏的某個值。
5.array_values();從新索引。通常和刪除一塊兒使用。
6.array_merge();合併數組,括號裏面填寫n個要合併的數組。
7.array_push();往數組裏面添加一個值,添加位置在末尾。
數組例子
//取數組裏面的內容作下拉列表
方法1:
$attr = array(//定義一個數組,用二維數組。
array("n001","漢族"),
array("n002","回族"),
array("n003","滿族"),
array("n004","維吾爾族") ); <select> <option>全部</option> <?php /*foreach($attr as $v) { echo "<option>{$v[1]}</option>"; }*/
?>
</select>
方法2:
$attr = array(//定義一個數組,用二維數組。
array("n001","漢族"),
array("n002","回族"),
array("n003","滿族"),
array("n004","維吾爾族") ); echo "<select>"; echo "<option>全部的</option>"; foreach($attr as $v) { echo "<option>{$v[1]}</option>"; } echo "</select>";
例子2:二維數組遍歷到表格
$attr = array( array("code","name","民族","年齡"), array("001","張三","漢族","23"), array("002","李四","回族","34"), array("003","王五","維吾爾族","53"), array("004","宋六","壯族","26") ); echo "<table border='1px'>"; for($i=0;$i<count($attr);$i++) { echo "<tr>"; for($j=0;$j<count($attr[$i]);$j++) { echo "<td>".$attr[$i][$j]."</td>"; } echo "</tr>"; } echo "</table>";