三日php之路 -- 第二,三天(php知識要點)

1、基礎php

    (1)數組html

// 數組的建立
$arr = array("apple", "banana"); 
$arr = array("f1"=>"apple", "f2"=>"banana"); 
// 在php5.4以後 可使用 
$arr = [1,2,3];
 
// 對於數組的遍歷
$arr_len = count($arr); // 須要注意數組的下標!!!
// 相似 python 的 for key,value in arr: print key,"=>",value;   
foreach($arr as $key=>$value){ 
    echo $key . "=>" . $value; 
}

2、表單處理python

    (1)數據提交方式通常爲GET或POST。mysql

    (2)表單涉及HTML基本知識。web

// action.php

if ($_SERVR["REQUEST_METHOD"] == "POST"){ 
    $name = str_input($_POST["name"]); 
}  
 
function str_input($data){
    // 數據驗證處理...  
}
// 定義變量並設置爲空值
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST"){
    if (empty($_POST["name"])){
        $nameErr = "Name is required!";
    }else{
        $name = test_input($_POST["name"]);
    }
}
// 表單數據驗證,使用 正則表達式

...

3、高級教程正則表達式

    (1)多維數組sql

// 多維數組建立
$arr = [[1,2,3], [2,3,4]];

// 多爲數組的引用
$arr[0][0]

    (2)時間和日期數據庫

// 設置默認時區
date_default_timezone_set("Asia/Shanghai");
// 獲取時間
date("Y/m/d h:m:s");

    (3)include編程

// 使用include 引入某個文件,當文件不存在時,腳本會繼續執行。
// 當使用 require ,找不到文件時,require語句會返回嚴重錯誤,腳本中止執行。

    (4)文件json

        php擁有多個函數能夠建立,讀取,上傳和編輯文件。請謹慎操做文件

<?php
$file = fopen("dic.txt", "r") or die("Unable to open file.");
echo fread($file, filesize("dic.txt"));
fclose($file);


// 讀取文件的一行,文件的指針會指向下一行
// fgets($file);

// 若是沒有 end of file, fgetc() 會將指針移動到下一個字符
while(!feof($file)){
    echo fgetc($file);
}

// 文件的寫入
$text = "文本內容";
fwrite($file, $text);


// 文件上傳
// ... ...

    (5)Cookies

// cookie 經常使用於用戶識別。cookie是服務器留在用戶計算機上的小文件。每當相同的計算機經過瀏覽器請求頁面時,它同時會發送cookie。

// 建立cookie, 使用 setcookie()。 必須放在 <html> 標籤前面
setcookie(key, value, exprie, path, domain);
setcookie("user", "root", time()+3600);

// 取回cookie
$_COOKIE["user"];
for($_COOKIE as $key=>$value){}
// 判斷是否已經設置 cookie 
isset($_COOKIE["user"]);

// 刪除cookie
setcookie("user", "", time()-3600);

    (6)Session

// session 變量用於存儲有關用戶會話的信息,或更改用戶會話的設置。 Session變量保存的信息是單一用戶的,而且可供應用程序中的全部頁面使用。
// Session的工做機制是:爲每一個訪問者建立惟一的UID,並基於這個UID來存儲變量。UID在cookie中,或url來進行傳導。

// 啓動會話,開啓session。須要放在 <html> 標籤前面
session_start();

// session 存儲變量
$_SESSION["views"] = 1;

// session 變量的讀取
$_SESSION["views"];

if(isset($_SESSION["views"])){
    $_SESSION["views"] = $_SESSION["views"] + 1;
} else {
    $_SESSION["views"] = 1;
}
echo "views is " . $_SESSION["views"];

// session 的刪除
unset($_SESSION["views"]);
// 或
session_destory();

    (7)E-mail

    (8)Error

        在建立腳本和web應用程序時,錯誤處理是一個重要的部分。

// 不一樣的錯誤處理方法

// 基本的錯誤處理,使用 die() 函數 
if(!file_exists("welcome.txt")){
    die("File not found.");
} else {
    $file = fopen("welcome.txt", "r");
}

// 建立自定義錯誤處理器
error_function(error_level, error_message, error_file, error_line, error_context)// error_level, error_message 必選

// 觸發錯誤
trigger_error();

    (9)Exception

        異常(Exception)用於在指定的錯誤發生時改變腳本的正常流程。

// ...

    (10)Filter

        過濾器用於驗證和過濾來自非安全來源的數據。

        驗證和過濾用戶輸入或自定義數據時任何web應用程序的重要組成部分。

// 什麼是外部數據
// ①來自表單的輸入數據 ②Cookies ③服務器變量 ④數據庫查詢結果


$int = "asd";
if(filter_var($int, FILTER_VALIDATE_INT)){
    echo "數字";
} else {
    echo "非數字";
}

4、MySQL數據庫

    (1)數據庫鏈接

$con = mysqli_connect(servername, username, password);
if(!$con){
    die("數據庫鏈接失敗!");
}
// 必定不要忘記關閉鏈接資源
mysqli_close($con);

    (2)建立數據庫

// CREATE DATABASE database_name;

$sql = "CREATE DATABASE my_db";
if(mysqli_query($sql, $con)){
    echo "數據庫建立成功";
} else {
    echo "數據庫建立失敗:" . mysqli_error();
}
mysqli_close($con);

    (3)建立數據庫表

<?php
// 建立數據庫鏈接
$con = mysqli_connect("localhost", "root", "");
if(!$con){
    echo "";
}
// 建立數據庫
if(mysqli_query("CREATE DATABASE my_db", $con)){
    echo "";
} else {
    echo "" . mysqli_error;
}
// 選擇數據庫
// 對於數據庫的選擇,固然可使用 「select * from my_db.person」
mysqli_select_db("my_db", $con);
// 建立sql語句
$sql = "CREATE TABLE Person
(
FirstName varchar(15),
LastName varchar(15),
Age int
)";
// 執行sql
mysqli_query($sql, $con);
// 關閉數據庫鏈接
mysqli_close($con);
?>

        一個比較完整點的例子:

$con = mysqli_connect("localhost", "root", "944898186");
if(!$con){
    die("數據庫鏈接失敗!\n");
} else {
    echo "數據庫鏈接成功!\n";
}
//if(mysqli_query($con, "CREATE DATABASE my_db")){
//    echo "數據庫建立成功!\n";
//} else {
//    echo "數據庫建立失敗!\n";
//}
mysqli_select_db($con, "my_db");
//$sql = "CREATE TABLE Persons
//(
//personID INT NOT NULL AUTO_INCREMENT,
//PRIMARY KEY (personID),
//FirstName VARCHAR (15),
//LastName VARCHAR (15),
//Age INT
//)";
//$sql = "INSERT INTO Persons (FirstName, LastName, Age)
//VALUES ('Peter', 'Griffin', '35')";
//$sql = "INSERT INTO Persons (FirstName, LastName, Age)
//VALUES ('Glenn', 'Quagmire', '33')";
$sql = "SELECT * FROM Persons";
$results = mysqli_query($con, $sql);

while($row = mysqli_fetch_array($results)){
    echo $row["FirstName"]."=>".$row["LastName"]."\n";
}

mysqli_close($con);

    (4)ODBC

        ODBC是一種應用程序編程接口(Application Programming Interface,API),使咱們有能力鏈接到某個數據源。

// 鏈接到 ODBC
odbc_connect() //函數用於鏈接到ODBC數據源。四個參數:數據源名稱,用戶名,密碼,可選的指針類型參數
odbc_exec() //函數用於執行SQL語句
odbc_fetch_row() //從結果集中返回記錄
odbc_close() // 關閉ODBC鏈接

5、XML

    xml用於數據的描述。XML文件描述了數據結構。在xml中沒有預約義標籤,須要定義本身的標籤。

// DOM 解析

// SimpleXML PHP5中的新特性

<?php
$xml = simplexml_load_file("text.xml");
echo $xml->getName() . "<br>";
foreach($xml->children() as $child){
    echo $child->getName() . ":" . $child . "<br>";
}
?>

6、AJAX

    AJAX = Asynchronous JavaScript And XML(異步 JavaScript 及 XML)

    AJAX是一種技術,能夠建立更好、更快且交互性更強的web應用程序。AJAX使用JavaScript在web瀏覽器和web服務器之間發送和接收數據。

var XMLHttp = null
if (window.XMLHttpRequest){
    XMLHttp = new XMLHttpRequest()
}
else if (window.ActiveXObject){
    XMLHttp = new ActiveXObject("Microsoft.XMLHTTP")
}

// 仍是研究 JQuery 的 AJAX 吧 ... ...
// AJAX只是提供異步的請求,服務器端的數據處理基本沒什麼變化 ... ...

7、其餘

    PHP基本內容算是差很少了吧。剩下的就是看下PHP常見框架,以及再熟悉下 regx,json,xpath ....

    下面研究下 JQuery 啥的吧...

相關文章
相關標籤/搜索