require 生成一個(gè)致命錯(cuò)誤(E_COMPILE_ERROR)熙揍,在錯(cuò)誤發(fā)生后腳本會停止執(zhí)行。
include 生成一個(gè)警告(E_WARNING)北启,在錯(cuò)誤發(fā)生后腳本會繼續(xù)執(zhí)行瞧壮。
Session
session_start(); 開始記錄
$_SESSION['views'] 根據(jù)名字獲取session
unset(¥SESSION['views']) 或 session_destroy() 銷毀session
Exception
拋出異常 try 中throw
抓包異常 catch
set_exception_handler() 設(shè)置所有未定義的錯(cuò)誤拋出
過濾器
"filter" 制定方法
"options" 過濾條件
- 過濾多個(gè)輸入
filter_input_array() 函數(shù)來過濾三個(gè) GET 變量遏乔。 - Filter Callback
調(diào)用自己的函數(shù),array("options"=>"xxx")
接口
聲明一個(gè)接口以及內(nèi)部的方法妨托,但不需要具體內(nèi)容缸榛。
interface iTemplate
{
}
實(shí)現(xiàn)接口
class Template implements iTemplate
Mysql
創(chuàng)建連接 new mysqli($servername, $username, $password);
檢測連接 $conn->connect_error
關(guān)閉連接 $conn->close(); mysqli_close($conn);
SQl語句 $conn->query()
PDO
開啟擴(kuò)展 extension=php_pdo.dll
初始化新對象 $dbh = new PDO($dsn, $user, $pass);
錯(cuò)誤對象 PDOException
- 預(yù)處理
mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email);
SQL語句
php中sql語句拼接,$sql="SELECT * FROM Websites WHERE id = '".$q."'";
'".$q."'
AJAX
能夠默寫出
XMLHttpRequest 對象用于和服務(wù)器交換數(shù)據(jù), open() 和 send() 方法
open
xmlhttp.open("GET/POST",服務(wù)器上的文件,async:true(異步)或 false(同步));
如果需要使用兰伤,必須true異步内颗,必須確定onreadystatechange 事件中的就緒狀態(tài)時(shí)執(zhí)行的函數(shù);如果小型請求中false同步敦腔,不需要onreadystatechange 函數(shù) 均澳,獲取的代碼放到 send() 語句后面即可:
常用GET,以下使用POST:
- 無法使用緩存文件(更新服務(wù)器上的文件或數(shù)據(jù)庫)
- 向服務(wù)器發(fā)送大量數(shù)據(jù)(POST 沒有數(shù)據(jù)量限制)
- 發(fā)送包含未知字符的用戶輸入時(shí)符衔,POST 比 GET 更穩(wěn)定也更可靠
- 在open()中傳入的php文件找前, 如果不加參數(shù)常使用的緩存文件,可以將文件后參數(shù)添加改成
demo_get.php?t=" + Math.random() - GET 方法發(fā)送信息判族,向 URL 添加信息:
send
xmlhttp.send(); 僅為post請求
- 像 HTML 表單 POST 數(shù)據(jù)躺盛,使用 setRequestHeader() 來添加 HTTP 頭。在 send() 方法中規(guī)定發(fā)送的數(shù)據(jù):
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");
其中 setRequestHeader(header,value)
response
.responseText; 字符串形式
.responseXML 解析為xml
onreadystatechange
- readyState 屬性存有 XMLHttpRequest 的狀態(tài)信息形帮,判斷改變時(shí)觸發(fā)onreadystatechange 函數(shù)槽惫,數(shù)字代表:
0: 請求未初始化
1: 服務(wù)器連接已建立
2: 請求已接收
3: 請求處理中
4: 請求已完成,且響應(yīng)已就緒 - status數(shù)字代表:
1xx:信息響應(yīng)類沃缘,表示接收到請求并且繼續(xù)處理
2xx:處理成功響應(yīng)類躯枢,表示動作被成功接收、理解和接受 200: "OK"
3xx:重定向響應(yīng)類槐臀,為了完成指定的動作锄蹂,必須接受進(jìn)一步處理
4xx:客戶端錯(cuò)誤,客戶請求包含語法錯(cuò)誤或者是不能正確執(zhí)行 404: 未找到頁面
5xx:服務(wù)端錯(cuò)誤水慨,服務(wù)器不能正確執(zhí)行一個(gè)正確的請求
所以 readyState 等于 4 且狀態(tài)為 200 時(shí)得糜,表示響應(yīng)已就緒。
首先判斷輸入框是否有數(shù)據(jù)晰洒,沒有即為空朝抖,有即執(zhí)行:
//創(chuàng)建XMLHttpRequest對象
if (window.XMLHttpRequest)
{
// IE7+, Firefox, Chrome, Opera, Safari 瀏覽器執(zhí)行的代碼
xmlhttp=new XMLHttpRequest();
}
else
{
//IE6, IE5 瀏覽器執(zhí)行的代碼
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
//創(chuàng)建在服務(wù)器響應(yīng)就緒時(shí)執(zhí)行的函數(shù)
xmlhttp.onreadystatechange=function()
{
//state: satus:
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
//向服務(wù)器上的文件發(fā)送請求,添加到 URL 末端的參數(shù)(q)(包含輸入框的內(nèi)容)
xmlhttp.open("GET","gethint.php?q="+str,true);
xmlhttp.send();
瀏覽器:創(chuàng)建xmlhttprequest對象谍珊,發(fā)送httprequest 給
Internet:處理httprequest并返回?cái)?shù)據(jù) 給
瀏覽器:JS處理返回的數(shù)據(jù) 治宣,更新內(nèi)容
簡單來說,創(chuàng)建XMLHttpRequest,open以后send給onreadystatechange中
回調(diào)函數(shù)
以參數(shù)形式傳遞給另一個(gè)函數(shù)的函數(shù)侮邀。將存在的多個(gè)AJAX函數(shù)引向同一個(gè)function
var xmlhttp;
function loadXMLDoc(url,cfunc)
{
if (window.XMLHttpRequest)
{// IE7+, Firefox, Chrome, Opera, Safari 代碼
xmlhttp=new XMLHttpRequest();
}
else
{// IE6, IE5 代碼
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=cfunc;
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
function myFunction()
{
loadXMLDoc("/try/ajax/ajax_info.txt",function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
});
}
跨域 Access-Control-Allow-Origin
在A域名下的server.php中添加頭部坏怪,
- 指定某域名
header('Access-Control-Allow-Origin:B域名'); - 允許多個(gè)域名訪問
$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';
$allow_origin = array(
B域名
C域名
);
if(in_array($origin, $allow_origin)){
header('Access-Control-Allow-Origin:'.$origin);
}
3、允許所有域名訪問
header('Access-Control-Allow-Origin:*');