PHP基礎知識點總結

1.php數組
var_dump()函數返回數組的數據類型和值
2.php對象
在 PHP 中,對象必須聲明。
首先,你必須使用class關鍵字聲明類對象。類是可以包含屬性和方法的結構。
然後我們在類中定義數據類型,然後在實例化的類中使用數據類型:
例子:

<?php
            class Car
            {
              var $color;
              function Car($color="green") {
                $this->color = $color;
              }
              function what_color() {
                return $this->color;
              }
            }
             ?>

3.php常量
常量被定義之後,在腳本任何地方都不能被改變
一個常量由英文字母、下劃線、和數字組成,但數字不能作爲首字母出現。 (常量名不需要加 $ 修飾符)。
設置php常量 函數語法爲:define(String constant_name,mixed value,case_sensitive =true);
該函數的三個參數:constant_name:必選參數,常量名稱,即標識符
value:必選參數,常量的值
case_sensitive:可選參數,指定是否大小寫敏感,設定爲true表示不敏感
4.php字符串變量
在php中,只有一個字符串運算符
並置運算符(.)用於把兩個字符串值連接起來
echo txt1."". txt2;(測試下,中間的雙引號可否去掉)
5.php的string函數
strpos()函數 用於在字符串內查找一個字符或一段指定的文本
strpos("Hello world!","world"); 結果:6
6.php的運算符
算數運算符:
x/y 除 x除以y的商
x%y 模(除法的餘數) x除以y的餘數
比較運算符:
x===y恆等於 如果x等於y,且它們類型相同,則返回true
!=和<>都是不等於的意思
!==不恆等於
邏輯運算符:
異或 x or y 如果x和y,有且僅有一個爲true,則返回true
數組運算符:
x == y 相等 如果 x 和 y 具有相同的鍵/值對,則返回 true
x === y 恆等 如果 x 和 y 具有相同的鍵/值對,且順序相同類型相同,則返回 true
7.php的數組
數組是一個能在單個變量中存儲多個值的特殊變量
array()函數用於創建數組
三種類型數組:
數值數組 帶有數字ID的數組
關聯數組 帶有指定的鍵的數組,每個鍵關聯一個值
多維數組 包含一個或多個數組的數組
獲取數組的長度 count函數
遍歷關聯數組
for()
foreach()循環

<?php
            $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
            foreach($age as $x=>$x_value)
            {
                echo "Key=" . $x . ", Value=" . $x_value;
                echo "<br>";
            }
        ?>

8.php數組排序函數
sort() - 對數組進行升序排列
rsort() - 對數組進行降序排列
asort() - 根據關聯數組的值,對數組進行升序排列
ksort() - 根據關聯數組的鍵,對數組進行升序排列
arsort() - 根據關聯數組的值,對數組進行降序排列
krsort() - 根據關聯數組的鍵,對數組進行降序排列

9.php超級全局變量
GLOBAL GLOBAL 是PHP的一個超級全局變量組,在一個PHP腳本的全部作用域中都可以訪問。
$GLOBAL 是一個包含了全部變量的全局組合數組。變量的名字就是數組的鍵。
實例:

    <?php 
            $x = 75; 
            $y = 25;
            function addition() 
            { 
                $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
            }            
            addition(); 
            echo $z; 
        ?>
$SERVER
    $_SERVER 是一個包含了諸如頭信息(header)、路徑(path)、以及腳本位置(script locations)等等信息的數組。這個數組中的項目由 Web 服務器創建。

$_REQUEST,$_POST,$_GET都可以獲得表單的數據

10.for循環
foreach(arrayas value)
{
要執行的代碼
}

11.創建php函數
準則:函數的名稱應該提示出它的功能
函數名稱以字母或下劃線開頭(不能以數字開頭)
實例:function functionName()
{
要執行的代碼
}
添加參數,如加兩個參數 function writeName(fname, punctuation)
返回值:需讓函數返回一個值,請使用 return 語句

12.魔術變量
LINE文件中的當前行號
FILE文件的完整路徑和文件名
DIR文件所在的目錄。如果用在被包括文件中,則返回被包括的文件所在的目錄。
它等價於 dirname(FILE)。除非是根目錄,否則目錄中名不包括末尾的斜槓。
(PHP 5.3.0中新增)
FUNCTION 函數名稱
CLASS 類的名稱
TRAIT /???????????????????????此處不懂,還需要研究一下
METHOD 類的方法名 返回該方法被定義時的名字(區分大小寫)
NAMESPACE 當前命名空間的名稱(區分大小寫)

13.命名空間(namespace)
//此處回頭再看,看着有點煩??????????????

14.表單
表單:先在form表單的 action裏面填上xxx.php,method是“post”,然後進入xxx.php文件中使用$_POST[“”]方法獲得相應的值
當method是“get”的時候所有變量名和值都會顯示在url中,注:在發送密碼或敏感信息的時候,不應該使用此方法。然而,正因爲變量顯示在 URL 中,
因此可以在收藏夾中收藏該頁面。在某些情況下,這是很有用的。
註釋:HTTP GET 方法不適合大型的變量值。它的值是不能超過 2000 個字符的。

 預定義的 $_REQUEST 變量包含了 $_GET、$_POST 和 $_COOKIE 的內容。
    $_REQUEST 變量可用來收集通過 GET 和 POST 方法發送的表單數據。
表單驗證:
     $_SERVER["PHP_SELF"] 會發送表單數據到當前頁面,而不是跳轉到不同的頁面。
     htmlspecialchars() 函數把一些預定義的字符轉換爲 HTML 實體。
        預定義的字符是:
            & (和號) 成爲 &amp;
            " (雙引號) 成爲 &quot;
            ' (單引號) 成爲 &#039;
            < (小於) 成爲 &lt;
            > (大於) 成爲 &gt;
        $_SERVER["PHP_SELF"] 可以通過 htmlspecialchars() 函數來避免被利用
        示例:<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
    使用 PHP 驗證表單數據
        首先我們對用戶所有提交的數據都通過 PHP 的 htmlspecialchars() 函數處理。
        當我們使用 htmlspecialchars() 函數時,在用戶嘗試提交以下文本域:
<script>location.href('http://www.w3cschool.cc')</script>
        - 該代碼將不會被執行,因爲它會被保存爲HTML轉義代碼,如下所示:
&lt;script&gt;location.href('http://www.w3cschool.cc')&lt;/script&gt;
        以上代碼是安全的,可以正常在頁面顯示或者插入郵件中。
        當用戶提交表單時,我們將做以下兩件事情,:
            使用 PHP trim() 函數去除用戶輸入數據中不必要的字符 (如:空格,tab,換行)。
            使用PHP stripslashes()函數去除用戶輸入數據中的反斜槓 (\)
        表單示例:`http://qctlr.cai.swufe.edu.cn/w3c/php/php-form-complete.html`

15.PHP數據庫
mysql連接語法:在php中使用mysqli_connected函數完成
語法:mysqli_connect(host,username,password,dbname);
host:可選,規定要連接的服務器.可以是要連接的服務器,可以是主機名或者IP地址
password: 規定登陸的密碼
dbname: 規定執行查詢的使用的默認數據庫

     連接的示例代碼:
<?php
    // Create connection              
        $con=mysqli_connect("example.com","peter","abc123","my_db");
    // Check connection
        if (mysqli_connect_errno($con))
        {
                echo "Failed to connect to MySQL: " . mysqli_connect_error();
        }
?>    
    關閉的代碼:mysqli_close($con);
php創建數據庫和表
    創建數據庫:關鍵代碼如下:
        $sql="CREATE DATABASE my_db";//sql語句
        mysqli($con,$sql);//執行語句
    創建表:
        $sql="CREATE TABLE Person(FirstName CHAR(30),LastName CHAR(30),Age INT)";
        mysqli($con,$sql);//執行語句
        注:主鍵和自動遞增字段:PID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(PID),
                    (AUTO_INCREMENT,PRIMARY KEY這是遞增和主鍵的關鍵字)

php MySql Insert Into
    和之前的創建的方法差不多,就是sql語句的方法不同
    sql的兩種寫法:1.INSERT INTO TABLE_NAME VALUES(value1,value2,value3);
              2.INSERT INTO TABLE_NAME(column1,column2,column3,...)VALUES (value1,value2,value3,..);
php Mysql Select
    sql語句:SELECT column_name(s) FROM table_name 
    $result=mysqli_query($conn,$sql);//result數組中存儲了查詢得到的數據
    while($row=mysqli_fetch_array($result)){
            echo $row['FirstName']." " .$row['LastName'];
            echo "<br>"
    }
//以下這幾個操作,都是需要執行mysqli_query(,)這個操作。
php Mysql Where
    SELECT column_name(s) FROM table_name WHERE column_name operator value

php Mysql Order By
`SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|Desc`
    可以根據多個列進行排序。當按照多個列進行排序時,只有第一列的值相同時才使用第二列:
        SELECT column_name(s)
        FROM table_name
        ORDER BY column1, column2

php Mysql Update 
UPDATE table_name SET column1=value,column2=value2,...
        WHERE some_column=some_value
php Mysql Delete
    DELETE FROM table_name WHERE some_column=some_value

16.php XML
XML 用於描述數據,其焦點是數據是什麼。XML 文件描述了數據的結構。
在 XML 中,沒有預定義的標籤。您必須定義自己的標籤。
有兩種基本的 XML 解析器類型:
基於樹的解析器:這種解析器把 XML 文檔轉換爲樹型結構。它分析整篇文檔,並提供了對樹中元素的訪問,例如文檔對象模型 (DOM)。
基於時間的解析器:將 XML 文檔視爲一系列的事件。當某個具體的事件發生時,解析器會調用函數來處理。

PHP XML DOM
     DOM是什麼?
    w3c DOM提供了針對HTML和XML文檔的標準對象集,以及用於訪問和操作這些文檔的標準接口
    W3C DOM 被分爲不同的部分(Core, XML 和 HTML)和不同的級別(DOM Level 1/2/3):
        * Core DOM - 爲任何結構化文檔定義標準的對象集
        * XML DOM - 爲 XML 文檔定義標準的對象集
        * HTML DOM - 爲 HTML 文檔定義標準的對象集
     XML解析
    XML文檔片段
        <?xml version="1.0" encoding="ISO-8859-1"?>
        <from>Jani</from>
    XML DOM 把上面的 XML 視爲一個樹形結構:
        Level 1: XML 文檔
        Level 2: 根元素: <from>
        Level 3: 文本元素: "Jani"
    示例xml文件:
        <?xml version="1.0" encoding="ISO-8859-1"?>
            <note>
            <to>Tove</to>
            <from>Jani</from>
            <heading>Reminder</heading>
            <body>Don't forget me this weekend!</body>
            </note>

    加載和輸出xml,並把它輸出
<?php
                $xmlDoc=new DOMDocument();
                $xmlDoc->load("note.xml");

                print $xmlDoc->saveXML();
            ?>
    輸出結果:ToveJaniReminder Don't forget me this weekend!

    遍歷XML(我們要初始化xml解析器,加載xml,並遍歷<note>元素的的所有元素)
<?php
        $xmlDoc=new DOMDocument();
        $xmlDoc->load("load.xml");
        $x=$xmlDoc->documentElement;
        foreach($x->childNodes As $item)
        {
            print $item->nodeName ." = " .$item->nodeValue . "<br>";
        }
?>
        輸出結果:   #text = 
                to = Tove
                #text = 
                from = Jani
                #text = 
                heading = Reminder
                #text = 
                body = Don't forget me this weekend!
                #text =
        在上面的實例中,您看到了每個元素之間存在空的文本節點。
        當 XML 生成時,它通常會在節點之間包含空白。XML DOM 解析器把它們當作普通的元素,如果您不注意它們,有時會產生問題。 
php SimpleXML       
    提供了一種獲取xml元素的名稱和文本的簡單方式
    SimpleXML 可把 XML 文檔(或 XML 字符串)轉換爲對象,比如:
        元素被轉換爲 SimpleXMLElement 對象的單一屬性。當同一級別上存在多個元素時,它們會被置於數組中。
        屬性通過使用關聯數組進行訪問,其中的索引對應屬性名稱。
        元素內部的文本被轉換爲字符串。如果一個元素擁有多個文本節點,則按照它們被找到的順序進行排列。

    示例xml文件 “note.xml”
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
    (1)、輸出$xml變量的鍵和元素
        <?php
            $xml=simplexml_load_file("note.xml");
            print_r($xml);
        ?>
        結果:SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! 
    (2)、輸出xml文件中每個元素的數據:
        <?php
            $xml=simplexml_load_file("note.xml");
            echo $xml->to . "<br>";
            echo $xml->from . "<br>";
            echo $xml->heading . "<br>";
            echo $xml->body;
        ?>
        結果:
            Tove
            Jani
            Reminder
            Don't forget me this weekend!
    (3)、輸出每個子節點的元素名稱和數據
        <?php 
            $xml=simplexml_load_file("note.xml");
            echo $xml->getName() . "<br>";
            foreach($xml->children() as $child)
            {
                echo $child->getName() . ": " . $child . "<br>";
            }
        ?>
        結果:
        note
        to: Tove
        from: Jani
        heading: Reminder
        body: Don't forget me this weekend! 

17.php高級教程
17.1 php多維數組
一個數組中的值可以是另一個數組,另一個數組的值也可以是一個數組,依次,我們可以創建二維或者三維數組:

  $families=array
         (
        "Griffin"=>array
        (
            "Peter",
            "Lous",
            "Megan"
        ),
        "Quagmire"=>array
        (
            "Glenn"
        ),
        "Brown"=>array
        (
            "Cleveland",
            "Loretta",
            "Junior"
        )
         )
   結果如下:Array
    (
        [Griffin] => Array
        (
            [0] => Peter
            [1] => Lois
            [2] => Megan
        )
        [Quagmire] => Array
        (
            [0] => Glenn
        )
        [Brown] => Array
        (
            [0] => Cleveland
            [1] => Loretta
            [2] => Junior
        )
    )
17.2 php Date()格式化日期
    php date()函數用於格式化時間/日期
    語法:date(format,timestamp)
         format:必需,規定時間戳的格式
        格式化日期:format下面有很多可選字符:
                d:代表月中的天
                m:代表月
                Y:代表年(四位數)
                如date(Y/m/d)或date(Y.m.d)等等
         timestamp:必需.規定時間戳,默認是當前的日期和時間
        添加時間戳:mktime()函數可爲指定的日期返回Unix時間戳
        Unix 時間戳包含了 Unix 紀元(1970-01-01 00:00:00 GMT)和指定時間之間的秒數。
        mktime()語法
            mktime(hour,minute,second,month,day,year,is_dst)
        示例:
<?php
        $tomorrow = mktime(0,0,0,date("m"),date("d")+1,date("Y"));
        echo "Tomorrow is ".date("Y/m/d", $tomorrow);
?>
            上面代碼的輸出如下所示:
                Tomorrow is 2009/05/12
17.3 php包含文件
    php include和require語句
    在php中,你可以在服務器執行php文件之前,在該文件中插入一個文件的內容
    include和require語句用於在執行流中插入寫在其它文件中的有用的代碼
    include和require除了處理錯誤的方式不同之外,在其他方面都是相同的
        include:生成一個警告,在錯誤發生之後,腳本會繼續執行
        require:生成一個致命錯誤,在錯誤發生後腳本會停止執行
    語法:include 'filename';
          require 'filename';

    示例:<?php include 'header.php'; ?>

17.4 php文件處理
    fopen()函數用於打開文件
    此函數的第一個參數含有要打開的文件的名稱,第二個參數規定了使用哪種模式來打開文件:
    $file=fopen("welcome.txt","r");
    第二個參數的各種模式:
        r   只讀。在文件的開頭開始。
        r+  讀/寫。在文件的開頭開始。
        w   只寫。打開並清空文件的內容;如果文件不存在,則創建新文件。
        w+  讀/寫。打開並清空文件的內容;如果文件不存在,則創建新文件。
        a   追加。打開並向文件末尾進行寫操作,如果文件不存在,則創建新文件。
        a+  讀/追加。通過向文件末尾寫內容,來保持文件內容。
        x   只寫。創建新文件。如果文件已存在,則返回 FALSE 和一個錯誤。
        x+  讀/寫。創建新文件。如果文件已存在,則返回 FALSE 和一個錯誤。

    以下的這段語句寫的是,假如fopen打不開該文件,則會生成一段消息
        $file=fopen("welcome.txt","r") or exit("Unable to open file!");
    關閉文件:fclose($file)
    檢測文件末尾(EOF)
        在循環遍歷未知長度的數據時,feof()函數很有用。
        if(feof($file)) echo "文件結尾";
    逐行讀取文件
        fgets()函數用於從文件中逐行讀取文件。
        注:在調用該函數之後,文件指針會移動到下一行。
        while(!feof($file))
        {
            echo fgets($file). "<br>";
        }
    逐字符讀取文件
        fgetc()函數用於從文件中逐字符的讀取文件
        注:在調用該函數之後,文件指針會移動到下一個字符
            操作和fgets方法差不多
17.5 php文件上傳()????????????????此處需要自己進行一下操作。實戰演練,不如肯定不知道咋回事
    http://www.runoob.com/php/php-file-upload.html

17.6 php Cookies 
    常用於識別用戶,cookie是一種服務器留在用戶計算機上的小文件,每當同一臺計算機通過瀏覽器請求頁面時,這臺計算機將會發送cookie.通過
    php,您能夠創建並取回cookie的值

    創建Cookie :setcookie(函數) 該函數必需位於<html>標籤之前。
        setcookie(name, value, expire, path, domain);
    <?php
        setcookie("user", "Alex Porter", time()+3600);
    ?>
    註釋:在發送 cookie 時,cookie 的值會自動進行 URL 編碼,在取回時進行自動解碼。(爲防止 URL 編碼,請使用 setrawcookie() 取而代之。)
    取回cookie的值
        php的$_COOKIE變量用於取回cookie的值 如:$_COOKIE["user"]
    用isset()函數來確認是否已設置了cookie   
    刪除Cookie,
        <?php
            // set the expiration date to one hour ago
            setcookie("user", "", time()-3600);
        ?>


17.7 Php Sessions
    PHP session 變量用於存儲關於用戶會話(session)的信息,或者更改用戶會話(session)的設置。
    Session 變量存儲單一用戶的信息,並且對於應用程序中的所有頁面都是可用的。

17.8

18 php Json
json函數
1.json_encode 對變量進行 JSON 編碼
2.json_decode 對 JSON 格式的字符串進行解碼,轉換爲 PHP 變量
3.json_last_error 返回最後發生的錯誤
String json_encode(value[, option=0])
value:要編碼的值,該函數只對utf-8編碼數據有效
options:由以下常量組成的二進制掩碼:JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT
示例:

<?php
      $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
       var_dump(json_decode($json));
       var_dump(json_decode($json, true));
?>
結果:
    object(stdClass)#1 (5) {
        ["a"] => int(1)
        ["b"] => int(2)
        ["c"] => int(3)
        ["d"] => int(4)
        ["e"] => int(5)
    }
    array(5) {
        ["a"] => int(1)
        ["b"] => int(2)
        ["c"] => int(3)
        ["d"] => int(4)
        ["e"] => int(5)
    }

19 AJAX簡介:無需加載整個網頁的情況下,能夠更新部分網頁的技術

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章