日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php基础学习大全

發布時間:2024/3/26 php 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php基础学习大全 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 第一章:PHP語言基礎
      • 1.1 PHP的標記風格
      • 1.3 PHP的數據類型
        • 1.3.1 標量數據類型
        • 1.3.2 復合數據類型
        • 1.3.3 數據類型轉換
        • 1.3.4 檢測數據類型
      • 1.4 PHP常量
        • 1.4.1 聲明和使用常量
        • 1.4.2 預定義常量
      • 1.5 PHP變量
        • 1.5.1 變量聲明及使用
        • 1.5.2 變量作用域
        • 1.5.3 可變變量
        • 1.5.4 預定義變量
      • 1.6 PHP運算符
      • 1.7 PHP函數
    • 第二章:流程控制語句
      • 2.1 if系列語句
      • 2.2 switch語句
      • 2.3 while與do……while語句
      • 2.4 for語句
      • 2.5 foreach語句
      • 2.6 跳轉語句
    • 第三章:字符串操作
      • 3.1 字符串的定義方法
        • 3.1.1 單引號與雙引號的區別
        • 3.1.2 使用定界符定義字符串
      • 3.2 字符串操作
        • 3.2.1 去除字符串首尾空格和特殊字符
        • 3.2.2 轉義、還原字符串數據
        • 3.2.3 獲取字符串長度
        • 3.2.4 截取字符串
        • 3.2.5 比較字符串
        • 3.2.6 檢索字符串
        • 3.2.7 替換字符串
        • 3.2.8 格式化字符串
        • 3.2.9 分割字符串(及print_r與echo的區別)
        • 3.2.10 合并字符串
    • 第四章:正則表達式
      • 4.1 語法規則
      • 4.2 函數
    • 第五章:數組
      • 5.1 數組的類型
        • 5.1.1 數字索引數組
        • 5.1.2 關聯數組
      • 5.2 輸出數組
      • 5.3 二維數組
      • 5.4 遍歷數組
        • 5.4.1 foreach遍歷
        • 5.4.2 list函數遍歷
      • 5.5 字符串與數組的轉換
        • 5.5.1 字符串轉數組
        • 5.5.2 數組轉字符串
      • 5.6 統計數組元素個數
      • 5.8 獲取數組中最后一個元素
      • 5.9 向數組中添加元素
      • 5.10 刪除數組中重復的元素
    • 第六章:PHP與Web頁面交互
      • 6.1 表單
        • 6.1.1 form標簽屬性
        • 6.1.2 其它
      • 6.2 PHP參數傳遞的常用方法
        • 6.2.1 \$\_POST[]和\$\_GET[]全局變量
        • 6.2.2 \$\_SESSION[]變量
        • 6.2.3 獲取參數值
    • 第七章:PHP與JavaScript交互
      • 7.1 JavaScript基礎
    • 第八章:PHP與MySQL
      • 8.1 操作MySQL數據庫
        • 8.1.1 連接
        • 8.1.2 選擇數據庫
        • 8.1.3 執行SQL語句
        • 8.1.4 釋放內存
        • 8.1.5 關閉連接
        • 8.1.2 選擇數據庫
        • 8.1.3 執行SQL語句
        • 8.1.4 釋放內存
        • 8.1.5 關閉連接

第一章:PHP語言基礎

1.1 PHP的標記風格

  • XML風格

    <?phpecho "XML風格的標記"; ?>

    推薦使用此種標記,服務器不能禁用,在XML和XHTML中都可以使用

  • 腳本風格

    <script language="php">echo "腳本風格的標記"; </script>
  • 簡短風格

    <? echo "簡短風格標記"; ?>
  • ASP風格

    <%echo "ASP風格標記"; %>

    簡短風格和ASP風格標記的使用,需要對php.ini進行配置,將里面的short_open_tagasp_tags都設置為on,然后重啟Apache服務器即可

###1.2 PHP的注釋

<?php/*You aresocute */echo "666"; //輸出666echo "520"; #輸出520 ?>

多行注釋: /* */(類似于C++)

單行注釋: //#

注意:單行注釋里不要出現“ ?> ”的標志,這樣會讓解釋器認成php腳本結束的標志

1.3 PHP的數據類型

1.3.1 標量數據類型

標量數據類型是數據結構中最基本的數據單元,只能存儲一個數據

類型描述
布爾型只有true和false兩個值
字符串型單個或連續的字符集合
整型整數類型,正數或負數都可
浮點型存儲有小數位的數字

1.3.2 復合數據類型

  • 數組(array)

    <?php//三種創建方式//第一種:$array_name = array('value1', 'value2'......);//第二種:$array_name[key] = 'value';//第三種:$array_name = array(key1 => value1, key2 => value2......); ?>
  • 對象(object)

    對象是類的實例

1.3.3 數據類型轉換

  • 自動轉換

    • bool型與數值型運算:true轉為整數1,false轉為整數0
    • 字符串型與數值型運算:若字符串是以數字開頭,則轉換為開頭的那個數字,否則轉換為0
    • 字符串拼接時:true變為字符串’1’,false和null變為空字符串’’,整數和浮點數會轉換成字符串型數據
    • 邏輯運算:0,0.0, ‘’,NULL,‘0’,空數組都會被轉為false
  • 強制轉換

    轉換符功能舉例
    (boolean)或(bool)轉布爾型$num = (bool)?$num、$num = (boolean)$num
    (string)轉字符串型$num = (string)$num
    (int)或(integer)轉整型$num = (int)$num、$num = (integer)$num
    (float)、(double)、(real)轉浮點型$num = (float)$num
    (array)轉數組$num = (array)$num

    **bool settype(var, type)**可以幫助完成類型轉換,如:

    $num = '3.14phporg'; settype($num, 'int'); echo $num;

    此段代碼輸出結果為3

    此外,"echo settype($num, ‘int’);"的輸出結果為1,因為settype函數的返回值是個bool類型,如果轉換成功,結果就為true,輸出值就為1

    還有一些函數:

    函數功能
    intval(var)轉整型
    floatval(var)、doubleval(var)轉浮點型
    boolval(var)轉布爾型

1.3.4 檢測數據類型

函數功能
is_bool(var)檢測變量是否為布爾型
is_string(var)檢測變量是否為字符串
is_float(var)、is_double(var)檢測變量是否為浮點型
is_integer(var)或is_int(var)檢測變量是否為整型
is_null(var)檢測變量是否為空(NULL)
is_array(var)檢測變量是否為數組類型
is_numeric(var)檢測變量是否為數字或由數字組成的字符串

1.4 PHP常量

1.4.1 聲明和使用常量

常量值被定義后,在腳本的其他任何地方都不能改變。PHP中使用==define()==函數來定義常量,該函數語法如下:

define(string constant_name, mixed value, case_sensitive = false)

參數描述
constant_name必選參數,常量的名稱,即標識符
value必選參數,常量的值
case_sensitive可選參數,指定是否大小寫敏感,設定為true則表示不敏感

其他關于常量的函數:

函數功能
constant(constant_name)constant_name為常量名,如何該常量存在則獲取常量值,否則報錯
defined(constant_name)判斷常量是否被定義,若被定義則返回true

例子:

<?phpdefine('AGE', '年齡18');echo AGE.'<br>'; //輸出常量AGE的值echo Age.'<br>'; //默認大小寫敏感,不存在常量Age,輸出字符串'Age'define('NAME', '小明', true);//true表示大小寫不敏感echo NAME.'<br>';echo name.'<br>'; //兩者輸出結果相同echo constant('AGE').'<br>';$age = 'AGE';echo constant($age).'<br>';echo constant('aGe').'<br>'; //常量不存在,報錯echo defined($age); ?>

運行結果:

年齡18
Age
小明
小明
年齡18
年齡18
Warning: constant(): Couldn’t find constant aGe in …
1

1.4.2 預定義常量

PHP里有很多已經定義、常量,我們可以利用這些常量來獲取PHP中的信息

常量名功能
__FILE__PHP程序文件名
__LINE__PHP程序行數
PHP_VERSIONPHP程序的版本
PHP_OS執行PHP解析器的操作系統
TRUE該常量是一個真值(true)
FALSE該常量是一個假值(false)
NULL一個空值(null)
E_ERROR該常量指到最近的錯誤處
E_WARNING該常量指到最近的警告處
E_PARSE該常量指到解析語法有潛在問題處
E_NOTICE該常量為發生不尋常處的提示

1.5 PHP變量

1.5.1 變量聲明及使用

變量名由數字、字母或下劃線組成,但不能以數字開頭。除此之外的其他字符也不能夠出現在變量名中。變量是由"$"符加變量名組成。

<?php$age_666 = 'my age is 18!'; //合法變量名$123_flag = 'valid name'; //以數字開頭,非法變量名$age@^ = 'vaild string'; //含有非法字符@、^,非法變量名 ?>

變量賦值:

<?php$string1 = 'value1'; //變量聲明時直接賦值$string2 = $string1; //變量間傳值$string3 = &$string1; //引用傳值 ?>

引用賦值使得多個變量訪問同一內存,其中一個變量值改變時,其它值也改變

1.5.2 變量作用域

作用域描述
局部變量函數內部定義的變量,只在該函數內部有效
全局變量被定義在所有函數以外的變量,作用于整個PHP文件,但在用戶自定義函數內部是不可用的。可以使用global關鍵字使得該變量可以在自定義函數內使用
靜態變量能在函數調用結束后仍然保留變量值,使用static關鍵字來聲明

1.5.3 可變變量

看一段例子:

<?php$a = 'b';$b = '我喜歡PHP';echo $a.'<br>';echo $$a; ?>

第一輸出的是$a?的值’b’,這沒有問題。第二個輸出的是’$$a’的值,首先,$a的值為’b’,$$a將$a用b替換,就變成了$b,所以$$a輸出的是$b的值。

1.5.4 預定義變量

PHP提供了很多非常實用的預定義變量, 通過這些預定義變量可以獲取用戶會話、 用戶操作系統 的環境和本地操作系統的環境等信息。下表列舉出了幾個。

變量名描述
$_COOKE通過HTTPCook.ie傳遞到腳本的信息,這些cookie多數是由執行PHP腳本時 通過setcookie()函數設置的
$_ SESSION包含與所有會話變量有關的信息。$_SESSION變量主要應用于會話控制和頁 面之間值的傳遞
$_POST包含通過POST方法傳遞的參數的相關信息。牛要用千獲取通過POST方認提交的數據
$_GET包含通過GET方法傳遞的 參數的 相關信息。主荌用于獲取通過GET方法提交 的數據

1.6 PHP運算符

  • 算術運算符

    符號描述
    +加法運算符,$a+$b
    -減法運算符,$a-$b
    *乘法運算符,$a*$b
    /除法運算符,整除,$a/$b
    %取余運算符,$a%$b
  • 字符串運算

    '.'可以連接兩個字符串

    <?php $n = '3.14abc'; $m = 2; echo $n.$m.'<br>'; echo $m.$n.'<br>'; echo ($m+$n).'<br>'; echo ($n+$m).'<br>'; ?>

    輸出結果:

    3.14abc2
    23.14abc
    5.14
    5.14

  • 賦值運算符

    如:$a += $b的意思是$a = $a + $b。此外,還有類似的-=、*=、/=、.=、%=

  • 位運算符

    符號作用
    &按位與
    |按位或
    ^按位異或
    ~按位取反
    <<向左移位
    >>向右移位
  • 邏輯運算符

    符號作用
    &&或and邏輯與
    ||或or邏輯或
    xor邏輯異或(用于判斷一真一假的情形)
    邏輯非
  • 條件運算符

    "? :“就是條件運算符,用法如"echo (5>2) ? 5 : 2;”,如果’?‘前面的表達式為真,輸出’:‘前的內容,否則輸出’:'后的內容

  • 比較運算符

    運算符名稱描述
    x == y等于如果x等于y,返回true(5=='5’成立)
    x === y絕對等于如果 x 等于 y,且它們類型相同,則返回 true(5==='5’不成立)
    x != y不等于如果 x 不等于 y,則返回 true
    x !== y絕對不等于如果 x 不等于 y,或它們類型不相同,則返回 true

1.7 PHP函數

  • 定義

    function 函數名( 參數 ){

    函數體;

    }

  • 傳遞參數

    <?phpfunction aaa($m){$m = $m*5 + 10;echo $m.'<br>'; }$m = 10;aaa($m); //按值傳參,不改變原參數的值echo $m; ?>/*輸出結果:60,10*/<?phpfunction aaa(&$m){$m = $m*5 + 10;echo $m.'<br>'; }$m = 10;aaa($m); //引用傳參,改變原參數的值echo $m; ?>//結果:60,60

    默認參數:

    <?phpfunction aaa($m, $t=5){$m = $m*5 + 10 + t;echo $m.'<br>'; }$m = 10;aaa($m); //沒傳t值,默認為5,輸出65aaa($m, 10); //t值為10,輸出70echo $m; ?>

    注意:默認參數必須放在非默認參數右側,從PHP5開始,默認值也可以通過引用傳遞

  • 變量函數

    PHP很有意思的一點就是這個變量函數

    <?phpfunction aaa(){echo 'my name ';}function bbb(){echo 'is ';}function ccc($name){echo $name;}$func = 'aaa'; //$func值與函數名'aaa'相同$func(); //調用aaa函數$func = 'bbb'; //$func值與函數名'bbb'相同$func(); //調用bbb函數$func = 'ccc'; //$func值與函數名'ccc'相同$func('scgg'); //調用ccc函數 ?>

    輸出結果為:

    my name is scgg

第二章:流程控制語句

2.1 if系列語句

用一個例子描述,假如小明的考試成績為*$grade*,成績低于60分為不及格,60~79為及格,80~89為良好,90~100為優秀,那么我們可以通過if語句來判斷小明所處的等級。

<?php$grade = rand(0,100); //rand(a, b)函數可以隨機生成a到b范圍內的一個數if ($grade < 60){echo '小明成績為'.$grade.',不及格,要補考';}else if ($grade >= 60 and $grade <= 79){echo '小明成績為'.$grade.',及格了';}else if ($grade >= 80 and $grade <= 89){echo '小明成績為'.$grade.',良好';}else{echo '小明成績為'.$grade.',非常優秀!';} ?>

執行結果為:

第一次運行結果:

小明成績為33,不及格,要補考

第二次運行結果:

小明成績為76,及格了

第三次運行結果:

小明成績為100,非常優秀!

2.2 switch語句

按照上例中的等級劃分:

<?php$class = array('不及格', '及格', '良好', '優秀');$num = rand(0,3);switch($class[$num]){case '不及格':echo '等級為'.$class[$num].',小明成績低于60分';break;case '及格':echo '等級為'.$class[$num].',小明成績在60~79之間';break;case '良好':echo '等級為'.$class[$num].',小明成績在80~89之間';break;case '優秀':echo '等級為'.$class[$num].',小明成績高于90分';} ?>

一次運行結果:

等級為優秀,小明成績高于90分

2.3 while與do……while語句

打印出1~20內的所有偶數

<?php//while語句$num = 1;echo '20內的所有偶數為:';while ($num <= 10){if ($num % 2 == 0)echo ' '.$num;$num++;} ?>

結果:

20內的所有偶數為: 2 4 6 8 10

?php//while語句$num = 1;echo '20內的所有偶數為:';do{if ($num % 2 == 0)echo ' '.$num;$num++;}while ($num <= 10); ?>

結果:

20內的所有偶數為: 2 4 6 8 10

2.4 for語句

輸出10的階乘

<?php$sum = 1;for($num = 1; $num <= 10; $num++){$sum *= $num;}echo '10的階乘為'.$sum; ?>

結果:

10的階乘為3628800

2.5 foreach語句

PHP5中foreach語句支持對數組和對象的遍歷,且只支持這些遍歷。

<?php$string_1 = array('my', 'age', 'is', '20');$string_2 = array('1'=>'are', '2'=>'you', '3'=>'ok!');foreach($string_1 as $value) //從頭到尾遍歷數組,值賦給$value{echo $value.' ';}echo '<br>';foreach ($string_2 as $key => $value) //下標賦值給$key,值賦給$value{echo $key.':'.$value.' ';}echo '<br>';foreach ($string_1 as $key => $value){echo $key.':'.$value.' ';} ?>

運行結果:

my age is 20
1:are 2:you 3:ok!
0:my 1:age 2:is 3:20

2.6 跳轉語句

語句作用
continue跳過本次循環剩余步驟,直接進入下次循環
break跳出循環體

第三章:字符串操作

3.1 字符串的定義方法

3.1.1 單引號與雙引號的區別

<?php$text_1 = 'Hello, world!';$text_2 = "Hello, world!";echo $text_1.'<br>';echo $text_2.'<br>';$str1 = 'he said >>> $text_1'; //單引號里$text_1不會被解析,被當成普通字符串處理$str2 = "he said >>> $text_1"; //雙引號里$text_1會被解析器解析,會變為'Hello, world!'echo $str1.'<br>';echo $str2.'<br>'; ?>

結果:

Hello, world!
Hello, world!
he said >>> $text_1
he said >>> Hello, world!

故兩者區別為:

單引號里面的內容不會被解析器解析,原樣輸出,所見即所得
雙引號里面的內容會被解析,如果有變量,則替換為該變量的值

3.1.2 使用定界符定義字符串

格式如下:

<<<str

格式化文本

str

'<<<'是關鍵字,必須使用;'str’是用戶自定義的定界符,用于標識文本的起始和結尾。

示例:

<?php$str = '定界符,';echo <<<border<font color="blue">你學會$str 了嗎?</font> border; ?>

結果:

你學會定界符, 了嗎?

注意:在上面的代碼中, 值得注意的是, 在定界符內不允許添加注釋, 否則程序將運行出錯。 結束標識符所在的行不能包含任何其他字符, 而且不能被縮進, 在標識符分號前后不能有任何空白字符或制表符。

3.2 字符串操作

3.2.1 去除字符串首尾空格和特殊字符

函數描述
trim(字符串, 字符)去除字符串里的指定字符。若字符選項為空,則去除字符串兩端的空格
ltrim(字符串, 字符)去除字符串左端的指定字符,若無指定字符,則去除左端的空格
rtrim(字符串, 字符)去除字符串右端的指定字符,若無指定字符,則去除右端的空格

3.2.2 轉義、還原字符串數據

  • **addslashes(str)**函數

    str為需要轉義的字符串,該函數會在單引號雙引號反斜線NULL字符前自動添加反斜線進行轉義

  • **stripslashes(str)**函數

    返回值為一個去除轉義斜線后的字符串

例子:

<?php$sql = "select * from user where id = '666'";echo '轉義后為:'.addslashes($sql);echo '<br>';$sql = addslashes($sql);echo '反轉義后為:'.stripslashes($sql); ?>

結果:

轉義后為:select * from user where id = ‘666’
反轉義后為:select * from user where id = ‘666’

  • **addcslashes(string, char)**函數

    對字符串string里的指定字符char進行轉義,其他非字母數字且ASCU碼低于 32 以及高于126 的字符均轉換成八進制表示。

  • **stripcslashes(str)**函數

    用于還原addcslashes函數轉義的字符串。

例子:

<?php$sql = "我是scgg, hello!";echo '轉義后為:'.addcslashes($sql,$sql);echo '<br>';$sql = addcslashes($sql,$sql);echo '反轉義后為:'.stripcslashes($sql); ?>

結果:

轉義后為:\346\210\221\346\230\257\s\c\g\g,\ \h\e\l\l\o!
反轉義后為:我是scgg, hello!

3.2.3 獲取字符串長度

  • **strlen(str)**函數獲取指定字符串str的長度(漢字占兩個字符)

3.2.4 截取字符串

語法:

string substr(str, start, length)

參數描述
str指定字符串對象
start指定開始截取字符串的位置。 如果參數start為負數, 則從字符串的末尾開始截取,字符串第一個字符位置為0
length指定從開始位置截取字符的個數, 如果length為負數, 則表示取到倒數第length個字符

例子:

<?phpecho substr("She is a well-read girl", 0); echo "<br>"; echo substr("She is a well-read girl", 4, 14);echo "<br>"; echo substr("She is a well-read girl", -4, 4); echo "<br>";echo substr("She is a well-read girl", 0,-4); ?>

結果:

She is a well-read girl
is a well-read
girl
She is a well-read

3.2.5 比較字符串

  • 按字節進行字符串的比較

    按字節進行字符串比較的方法有兩種, 分別是 strcmp()和 strcasecmp()函數, 通過這兩個函數即可 實現對字符串進行按字節的比較。這兩種函數的區別是 strcmp()函數區分字符的大小寫,而 strcasecmp() 函數不區分字符的大小寫。 由于這兩個函數的實現方法基本相同, 這里只介紹 strcmp()函數。

    int strcmp (string str1, string str2)

    str1 和 str2 指定要比較的兩個字符串。 如果 strl 和 str2 相等, 則返回 0; 如果 str1大于 str2, 則返回值大于 0; 如果 str1小于 str2, 則返回值小于 0。

  • 按自然排序法進行字符串的比較

    int strnatcmp (string str1, string str2)

    如果字符串str1和str2相等,則返回0;如果str1大于str2則返回值大于0;如果str1小于str2, 則返回值小于0。strnatcmp()函數區分字母大小寫。

注意:在自然運算法則中,2比10小,而在計算機序列中,10比2小,因為"10’'中的笫一個數字是’1’它小于2。

例子:

<?php$str1 = 'str2.jpg';$str2 = 'str100.jpg';$str3 = 'php';$str4 = 'PHP';echo strcmp($str1, $str2).'<br>';echo strnatcmp($str1, $str2).'<br>';echo strcmp($str3, $str4).'<br>';echo strnatcmp($str3, $str4).'<br>'; ?>

結果:

1
-1
1
1

  • 指定從源字符串的位置開始比較

    int strncmp(string str1 ,string str2,int len)

    此函數用于比較前len個字符,其中len為指定參與比較的字符的數量,此函數區分大小寫

3.2.6 檢索字符串

  • strstr(string, needle)

    參數描述
    string必要參數, 指定從哪個字符串中進行搜索
    needle必要參數, 指定搜索的對象。 如果該參數是 個數值, 那么將搜索與這個數值的 ASCII 值相匹配的字符

    例子:

    <?php$str1 = 'str2.jpg';$str2 = strstr($str1,'.');$str3 = strstr($str1,'2');echo $str2.'<br>'.$str3; ?>

    結果:

    .jpg
    2.jpg

    strrchr()函數與其正好相反, 該函數是從字符串后序的位置開始檢索子串(子字符串)的,結果與strstr()相同

  • 使用**substr_ count(str, char)**函數檢索子串出現的次數

3.2.7 替換字符串

  • **str_ireplace()**函數

    str_ireplace (search, replace, subject [, count])

    參數描述
    search要搜索的值, 可以使用array來提供多個值
    replace指定替換原字符的值
    subject要被搜索和替換的字符串或數組
    count執行替換的數量
  • **substr_replace()**函數

    substr_replace(string, repl, start,[ length])

    參數描述
    string原始字符串
    repl指定替換后的新字符串
    start指定替換字符串開始的位置。 正數表示替換從字符串的第 start 位置開始; 負數表示替換從字符串的倒 數第 start 位置開始; 0 表示替換從字符串中的第一 個字符開始
    length可選參數,指定返回的字符串長度。默認值是整個字符串。正數表示被替換的子字符串的長度;負數表示待替換的子寧符串結尾處距離字符串末端的字符個數;0 表示將 repl插入到 string 的 start 位置處

3.2.8 格式化字符串

number_format(float number[,int decimals [,string dec_point[,string thousand_sep]]])

number為要格式化的數字,dee皿als為要保留的小數位數,dec_point為指定小數點顯示的字符,thousands_sep為指定千位分隔符顯示的字符 。此函數可以有1、2、4個參數,但不能是3個參數

例子:

<?php $num = 12345678.12345689;echo number_format($num,5,'.','"'); ?>

結果:

12"345"678.12346

3.2.9 分割字符串(及print_r與echo的區別)

explode(string delimiter,string str[int limit])

參數描述
delimiter邊界上的分隔符
str要被分割的字符串
limit分割次數,可選參數

例子:

<?php $a = 'c++%python%php%go%java';$b = explode('%',$a);print_r($b);echo '<br>';echo $b.'<br>';echo $b[0]; ?>

結果:

Array ( [0] => c++ [1] => python [2] => php [3] => go [4] => java )
Array
c++

print_r可以輸出數組,echo只能輸出單個元素

3.2.10 合并字符串

**implode(strihg glue, array pieces) **

glue是指定的連接符,pieces是數組類型,指定要被合并的數組。

第四章:正則表達式

4.1 語法規則

符號用法例子
^表示行的開始^word
$表示行的結尾word$
\b表示要查找的字串為一個完整的單詞\bword\b
\B表示要查找的不是一個完整的單詞,而是單詞或字符串的一部分\Btem\B
[ ]忽略大小的匹配一個字符[tT]
[[:digit:]]十進制數字集合,等同于[0-9]
[[:alnum:]]字母和數字的集合,等同于[a-zA-Z0-9]
[[:alpha:]]字母集合,等同于[a-zA-Z]
[[:blank:]]空格和制表符
[[:xdigit:]]十六進制數字
[[:punct:]]特殊字符集合。包括鍵盤上的所有特殊字符,如“!” “@” “#” “S” “?”等
[[:print:]]所有的可打印字符(包括空白字符)
[[:space:]]空白字符(空格、換行符、換頁符、回車符、水平制表符)
[[:graph:]]所有的可打印字符(不包括空白字符)
[[:upper:]]所有大寫字母,等同于[A-Z]
[[:lower:]]所有小寫字母,等同于[a-z]
[[:cntrl:]]控制字符
|或,表選擇(T|t)(M|m)表示匹配四種組合方式:TM、Tm、tM、tm
-連字符,表示可選字符的范圍[a-z]
[^]^放在括號內表示排除,取非的意思[^a-zA-Z]
?匹配前面的字符0次或1次cplou?r:color或colour
+匹配前面的字符一次或多次
*匹配前面的字符0次或多次
{n}匹配前面的字符n次
{n,}匹配前面的字符最少n次
{n,m}匹配前面的字符最少n次,最多m次
.匹配除換行符外任意的一個字符
\轉義等功能
\d任意一個十進制數字,相當于[0-9]
\D任意一個非十進制數字
\s任意一個空白字符(空格、換行符、換頁符、同車符、水平制表符) ,相當千[\f\n\r\t]
\S任意一個非空白字符
\w任意一個單詞字符,相當于[a-zA-Z0-9]
\W任意一個非單詞字符
()1.改變限定符的作用范圍;2.分組
反向引用依靠式子的記憶功能來匹配連續出現的字符串(if)(we)\1\2:匹配字符串ifweifwe

4.2 函數

  • preg_grep(string pattern, array input )

    <?php$preg = '/\w{7,}@\w{2,}\.com/';$ary = array('scgg@163.com','1859663@qq.com','your6666@aliyun.com');$preg_array = preg_grep($preg, $ary);var_dump($preg_array); ?>

    結果:

    array(2) { [1]=> string(14) “1859663@qq.com” [2]=> string(19) “your6666@aliyun.com” }

    注意:正則表達式前后要加’/'

  • preg_match()和preg_match_all()函數

    **int preg_match/preg_match_all(string pattern, string subject [, array matches]) **

    函數preg_match()的返回值是0或1, 因為該函數在匹配成功后就停止繼續查找了。而preg_match_all()函數則會一直匹配到最后才停止。參數matches是將匹配到的字符存儲在該數組里。

    例子:

    <?php$str = 'This is an example!';$preg = '/\b\w{2}\b/';$num1 = preg_match($preg, $str, $str1);echo $num1.'<br>';var_dump($str1);$num2 = preg_match_all($preg, $str, $str2);echo '<p>'.$num2.'<br>';var_dump($str2); ?>

    結果:

    1
    array(1) { [0]=> string(2) “is” }

    2
    array(1) { [0]=> array(2) { [0]=> string(2) “is” [1]=> string(2) “an” } }

  • string preg_quote (string str [, string delimiter])

    str里的特殊字符進行轉義,如果有參數delimiter,那么str里也會將該參數轉義。該函數返回轉義后的字符串。

  • mixed preg_replace (mixed pattern, mixed replacement, mixed subject [, int limit])

    該函數在字符串subject中匹配表達式pattern, 并將匹配項替換成字串replacement。 如 果有參數limit, 則替換limit次。

  • mixed preg_replace_callback (mixed pattern, callback callback, mixed subject[, int limit])

    preg_replace_ callback()函數與preg_replace()函數的功能相同,都用于查找和替換字串 。不同的是,preg_replace _ callback()函數使用一個回調函數(callback)來代替replacement參數。

  • array preg_split (string pattern, string subject [, int limit])

    使用表達式pattern來分割字符串subject。

第五章:數組

5.1 數組的類型

5.1.1 數字索引數組

數組的鍵值為數字

5.1.2 關聯數組

鍵值為字符串:

姓名為Jack,年齡為22,身高為185 20<?php$newAry = array('name'=>'Jack', 'age'=>'22', 'height'=>'185');echo '姓名為'.$newAry['name'].',年齡為'.$newAry['age'].',身高為'.$newAry['height'].'<br>';$newAry['age'] = '20';echo $newAry['age']; ?>

結果為:

姓名為Jack,年齡為22,身高為185
20

5.2 輸出數組

使用**print_r( expression )**函數:

如果該函數的參數expression為普通的整型、 字符型或實型變量, 則輸出該變量本身。 如果該參數為數組, 則按一定鍵值和元素的順序顯示出該數組中的所有元素。

5.3 二維數組

<?php$new = array(0=>array('數學','英語'),'girl'=>array('one'=>'劉亦菲','third'=>'趙麗穎'));echo $new[0][1].'<br>';print_r($new['girl']['one']);echo '<br>';print_r($new); ?>

結果:

英語
劉亦菲
Array ( [0] => Array ( [0] => 數學 [1] => 英語 ) [girl] => Array ( [one] => 劉亦菲 [third] => 趙麗穎 ) )

5.4 遍歷數組

5.4.1 foreach遍歷

<?php//一維數組遍歷$str = array('1','2','3');foreach($str as $value){echo $value.';';}echo '<br>';//二維數組遍歷$new = array(0=>array('數學','英語'),'girl'=>array('one'=>'劉亦菲','third'=>'趙麗穎'));foreach($new as $value){foreach($value as $val){echo $val.';';}} ?>

結果:

1;2;3;
數學;英語;劉亦菲;趙麗穎;

5.4.2 list函數遍歷

<?php$my_array = array("Dog","Cat","Horse");list($a, $b, $c) = $my_array;echo "I have several animals, a $a, a $b and a $c."; ?>

結果:

I have several animals, a Dog, a Cat and a Horse.

5.5 字符串與數組的轉換

5.5.1 字符串轉數組

<?php$str = '皮卡丘,杰尼龜,比雕';$ary = explode(',',$str);print_r($ary); ?>

結果:

Array ( [0] => 皮卡丘 [1] => 杰尼龜 [2] => 比雕 )

5.5.2 數組轉字符串

<?php$str = '皮卡丘,杰尼龜,比雕';$ary = explode(',',$str);print_r($ary);echo '<br>';$str = implode('、',$ary);print_r($str); ?>

結果:

Array ( [0] => 皮卡丘 [1] => 杰尼龜 [2] => 比雕 )
皮卡丘、杰尼龜、比雕

5.6 統計數組元素個數

int count (mixed array [, int mode])

參數描述
array數組
mode默認為0,使用默認值時只能遍歷一維數組。設置為COUNT_RECURSIVE (或 1)時,能遍歷多維數組
<?php$str = array('1','2','3','4','5');$str2 = array(0=>array('1','2','3'),1=>array('1','2'));echo count($str).'<br>';echo count($str2).'<br>';echo count($str2,1); ?>

結果:

5
2
7

###5.7 查詢數組中指定元素

mixed array_search ( mixed needle, array haystack [, bool strict])

其中, needle 指定在數組中搜索的值; haystack 指定被搜索的數組; strict 為可選參數, 如果值為 true, 還將在數組中檢查給定值的類型。

5.8 獲取數組中最后一個元素

函數:array_pop( array )

array _pop()函數獲取并返回數組的最后一個元素, 并將數組的長度減1,如果數組為空(或者不是數組)將返回null。

5.9 向數組中添加元素

int array_push (array array, mixed var[, mixed … ])

array_push()函數將數組當成一個棧, 將傳入的變量壓入該數組的末尾, 該數組的長度將增加入棧變量的數目, 返回數組新的元素總數。

<?php$new = array('1','2','3');$num = array_push($new, '4','5', '6');echo $num.'<br>';print_r($new); ?>

結果:

6
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )

5.10 刪除數組中重復的元素

array array_unique (array array)

array_unique()函數用于將值作為字符串排序,然后對每個值只保留第一個鍵名,忽略所有后面的鍵名, 即刪除數組中重復的元素。

第六章:PHP與Web頁面交互

6.1 表單

6.1.1 form標簽屬性

屬性描述
name表單名稱
method表單的提交方式(GET或POST)
action指向處理該表單頁面的URL(相對位置或絕對位置)
enctype設置表單內容的編碼方式
target設置返回信息的顯示方式
target屬性值描述
_blank將返回信息顯示在新的窗口
_parent將返回信息顯示在父級窗口
_self將返回信息顯示在當前窗口
_top將返回信息顯示在頂級窗口

6.1.2 其它

關于表單的其他內容請自行尋找

6.2 PHP參數傳遞的常用方法

6.2.1 $_POST[]和$_GET[]全局變量

<?php$user = $_POST["user"]; //獲取名為user的文本框的內容$user = $_GET["user"]; ?>

6.2.2 $_SESSION[]變量

<?php$user = $_SESSION["user"]; ?>

使用$_SESSION[]傳參的方法獲取的變量值,保存之后任何頁面都可以使用,但這種方法很耗費系統資源,建議讀者慎重使用。

6.2.3 獲取參數值

例子:

<html><head><meta charset="utf-8"><title>TEST</title></head><body><form method="post">性別:<input type = 'radio' value = '男' name = 'sex' checked />男<input type = 'radio' value = '女' name = 'sex' />女<input type="submit" name="submit" value="提交" /></form><?phpif(isset($_POST['sex'])){echo '你的性別為:'.$_POST['sex'];}?></body> </html>

結果:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-dLDEaMJh-1587956186477)(D:\Typora\保存\php\圖片\1.png)]

點擊"提交"后:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-W5g3JbXm-1587956186488)(D:\Typora\保存\php\圖片\2.png)]

第七章:PHP與JavaScript交互

7.1 JavaScript基礎

  • 數據類型

    數據類型說明
    字符串型單個或多個字符
    數值型整數或浮點數
    布爾型true或false
    對象型對象
    Null值可以給變量賦null值來清除變量內容
    Undefined表示該變量尚未被賦值
  • 變量聲明與賦值

    var i, j; //變量聲明 var i=1; j=100; //賦值
  • 注釋

    單行注釋://

    多行注釋:/* */

  • 函數

    function 函數名 (參數) { 函數體; }

    例:

    <script language="javascript">function cheng(a, b){return a*b;}document.write(cheng(5,10)); </script>
  • 條件語句

    var form=99; if (form<60){alert("不及格");} else if(form>=60&&form<=89){alert("良好");} else{alert("優秀");}
  • 循環

    var number = 100; while(number--){document.write(number);} for(var i=1;i<100;i++){document.write(i);}

其它請參考菜鳥教程:JavaScript

第八章:PHP與MySQL

8.1 操作MySQL數據庫

8.1.1 連接

函數:mysqli_connect(sever, username, password, dbname, port, socket)

參數描述
severMySQL服務器地址(IP地址)
username用戶名
password密碼
dbname連接的數據庫名稱
portMySQL服務器使用的端口號
socketUnix域socket

使用mysqli_connect函數,如果連接成功返回一個mysql連接標識,否則返回false。

8.1.2 選擇數據庫

  • 方式一

    $con = mysqli_connect('127.0.0.1','root','root','dbname');
  • 方式二

    $con = mysqli_connect('127.0.0.1','root','root'); if($con) {mysqli_select_db($con, 'dbname'); }

8.1.3 執行SQL語句

mysqli_query(link, query[, resultmode])

參數描述
linkmysql連接
querysql語句
resultmode可選。一個常量。可以是下列值中的任意一個: MYSQLI_USE_RESULT(如果需要檢索大量數據,請使用這個,mysqli_free_result()函數可以釋放內存,兩者配合使用)、MYSQLI_STORE_RESULT(默認)

查詢結果集請參考:函數大全

8.1.4 釋放內存

$result = mysqli_query($connect, "select * from ……"); mysqli_free_result($result);

8.1.5 關閉連接

mysqli_close($connect)

ort, socket)**

參數描述
severMySQL服務器地址(IP地址)
username用戶名
password密碼
dbname連接的數據庫名稱
portMySQL服務器使用的端口號
socketUnix域socket

使用mysqli_connect函數,如果連接成功返回一個mysql連接標識,否則返回false。

8.1.2 選擇數據庫

  • 方式一

    $con = mysqli_connect('127.0.0.1','root','root','dbname');
  • 方式二

    $con = mysqli_connect('127.0.0.1','root','root'); if($con) {mysqli_select_db($con, 'dbname'); }

8.1.3 執行SQL語句

mysqli_query(link, query[, resultmode])

參數描述
linkmysql連接
querysql語句
resultmode可選。一個常量。可以是下列值中的任意一個: MYSQLI_USE_RESULT(如果需要檢索大量數據,請使用這個,mysqli_free_result()函數可以釋放內存,兩者配合使用)、MYSQLI_STORE_RESULT(默認)

查詢結果集請參考:函數大全

8.1.4 釋放內存

$result = mysqli_query($connect, "select * from ……"); mysqli_free_result($result);

8.1.5 關閉連接

mysqli_close($connect)

總結

以上是生活随笔為你收集整理的php基础学习大全的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。