? ?PHP庫給開發(fā)者提供了一個標準接口 它幫助開發(fā)者在PHP里充分利用面向?qū)ο缶幊?這些庫為特定類型的內(nèi)置功能提供了一個標準的API 允許類可以與PHP引擎進行無縫的交互 此外 開發(fā)者使用這些類庫還可以簡化工作流程 提供工作效率
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、寧化網(wǎng)站維護、網(wǎng)站推廣。
下面就一起來看看這些非常實用且免費的類庫吧 希望它們能助你一臂之力
Requests
? ?Requests是一個用PHP編寫的HTTP庫 遵循ISC開源協(xié)議 托管在GitHub上 Requests取代了Python HTTP/ 以外的一切工作———讓你與Web服務(wù)可以無縫的結(jié)合
? ?Requests提供了一致的API 并且使用cURL或fsockopen(具體取決于可用性) 它還簡化了發(fā)送請求 接受HEAD GET POST PUT DELETE或PATCH并且添加標頭 表單數(shù)據(jù)和多個部分組成的文件 其次 該庫還適用于國際域名 身份驗證 自動壓縮gzip壓縮響應(yīng)等 綜上所述可以看出 Requests是一個非常好用且可以友好托管HTTP請求的標簽
Munee
? ? Munee是一個集圖片尺寸調(diào)整 CSS JS合并/壓縮 緩存等功能于一身的PHP庫 可以在服務(wù)器端和客戶端緩存資源 它集成了PHP圖片操作庫Imagine來實現(xiàn)圖片尺寸調(diào)整和剪切 之后進行緩存
? ? Munee可以自動編譯LESS SCSS和CoffeeScript 并且可以把CSS+JS文件合并成一個單一的請求 此外 還可以對這些CSS JS文件進行精縮 讓其擁有更好的性能表現(xiàn) 該庫還可以輕易地與任何代碼集成
Ratchet?
? ?Ratchet是一個PHP庫 WebSockets工具包 開發(fā)者可以使用它在客戶端和服務(wù)器端之間構(gòu)建實時 雙向的App應(yīng)用 并且可以快速簡單地構(gòu)建事件驅(qū)動應(yīng)用程序(而不是傳統(tǒng)的HTTP 請求/響應(yīng)應(yīng)用程序)
Swift Mailer
? ?Swift Mailer是一個功能豐富的PHP郵件庫 不依賴于PHP自帶的mail() 函數(shù) 因為該函數(shù)在發(fā)送多個郵件時占用的系統(tǒng)資源很高 Swift直接與SMTP服務(wù)器通訊 具有非常高的發(fā)送速度和效率
Unirest?
? ?Unirest是一個輕量級的HTTP開發(fā)庫 可用于PHP Ruby Python Java Objective C等開發(fā)語言 支持GET POST PUT UPDATE DELETE操作 它的調(diào)用方法與返回結(jié)果對所有開發(fā)語言來說 都是相同的
Detector
? ?Detector是一個開源的PHP類庫 用于檢測用戶的瀏覽器環(huán)境 它可以獲得瀏覽器的使用情況和瀏覽器的HTML CSS 功能 并分析是否是移動 平板電腦 桌面或網(wǎng)頁爬蟲和其他項 如 顏色深度 視頻尺寸 Cookie等 該庫對每個瀏覽器用戶都使用單一的用戶代理字符串來自動適應(yīng)新瀏覽器 版本和設(shè)備
PHP Thumb
? ?PHP Thumb是一個PHP類 用來生成圖片的縮略圖 只需數(shù)行代碼即可 支持多種圖片來源 包括文件系統(tǒng)或者數(shù)據(jù)庫 支持大多數(shù)圖片格式 并可對圖片進行旋轉(zhuǎn) 剪切 加水印等等 可自定義縮略圖的質(zhì)量 提供內(nèi)建的緩存以降低服務(wù)器的負載
Zebra Image
? ? ?Zebra Image是一個開源的輕量級圖像處理庫 并且是一款面向?qū)ο髱?只需PHP GD 擴展 并支持縮放 裁剪 旋轉(zhuǎn)和翻轉(zhuǎn)操作 它可以用于 jpg gif png等格式
Hybrid Auth
? ?HybridAuth是一個開源PHP類庫 用于通過微博/社交網(wǎng)站和ID來提供驗證功能實現(xiàn)同步登錄網(wǎng)站功能 它能夠很方便的與現(xiàn)有網(wǎng)站相集成 只要引用一個文件并添加幾行代碼就能夠?qū)崿F(xiàn)登錄 一旦驗證 HybridAuth會提供連接用戶的標準化相關(guān)資料 此外 除了驗證功能 這個類庫能夠讓我們與用戶連接的social API客戶端相交互
Gantt Charts
? ?Gantti是一個開源的PHP類 幫助用戶即時生成Gantt圖表 使用Gantti創(chuàng)建圖表無需使用JavaScript 是純HTML CSS 圖表默認輸出非常漂亮 但用戶可以自定義樣式進行輸出(SASS樣式表)
Mobile Detect?
? ?Mobile Detect是一個PHP類 通過User Agent檢測各種手機設(shè)備 并結(jié)合HTTP Header來檢測移動設(shè)備環(huán)境 該類庫最強大的地方是 它有一個非常完整的庫 可以檢測出所用的設(shè)備類型(包括操作類型 以及手機品牌等都能檢測)和瀏覽器的詳細信息
ImageWorkshop
? ?顧名思義 ImageWorkshop是一個管理和操作圖片的PHP類庫 這個類擁有類似圖片編輯軟件的邏輯 基于層的概念 可以疊加很多層或?qū)咏M(每一層不同的操縱選項) 它還支持許多功能 比如水印 裁剪 移動 縮放 旋轉(zhuǎn) 疊加等
JqmPhp
? ?JqmPhp是一個PHP開源類庫 旨在簡化jQuery與PHP來進行移動開發(fā) 用于生成使用jQuery Mobile框架所需要的HTML文件 該類庫的文件是獨立的 所以你可以根據(jù)需要來選擇使用
PHP Image Cache
? ?Image Cache是一個輕量級的PHP類 可以在用戶瀏覽器里壓縮 移動 緩存圖片 這個類提供一些簡單的設(shè)置如 目錄 根路徑URL等 然后針對每一張圖片調(diào)用壓縮功能
Imagine
? ?Imagine是一個面向?qū)ο蟮腜HP類庫 用于圖片操作 這個類庫能夠處理一些經(jīng)常用到的操作如 縮放 裁剪 應(yīng)用過濾等 其Color類庫可用于對任意特定的顏色生成RGB值 并且還提供一些方法來繪制圖形如 圓弧 橢圓 線 片等
lishixinzhi/Article/program/PHP/201404/30630
首先你要知道什么是函數(shù),比如這一個
is_mail($str){//判斷的內(nèi)容}
假如這個is_mail可以用來判斷用戶提交的數(shù)據(jù)是否是email格式的,這就是一個功能。判斷is_mail的功能。
使用的時候只要
if(is_mail($str))
{}
else
{}
函數(shù)庫
就是很多函數(shù)的集合。有很多功能,你就不用自己重新寫了,直接使用就可以。
而類庫,你要先理解類。
類,你可以理解為函數(shù)根據(jù)實際需求分類存放的一個地方。因為如果項目很大,就會有很多函數(shù),如果不分類,有時候就很難找到了。根據(jù)函數(shù)的功能,把一類函數(shù)都整合到一個類里面,使用起來就很方便。
比如數(shù)據(jù)庫操作類。
所有數(shù)據(jù)庫操作的函數(shù)都放在里面了,你只要調(diào)用就可以了。
$db = new data();
$db-qurey();//使用$db類的qurey方法,其實就是使用qurey這個函數(shù)。
而類庫,就是很多可以直接使用的類。
總而言之,函數(shù)庫和類庫,可以大大提升開發(fā)效率。
此類庫簡單、易用,便于你自己修改和對功能的改善,能解決大部分
PHP
項目中執(zhí)行的
SQL
操作。
初步工作
首先,請大家下載這個類庫
M.class.php 再下載一個
Mysqli
連接數(shù)據(jù)庫的類庫
MysqliDb.class.php(打包下載地址)
新建一個
includes
的文件夾,將下載下來的兩個
class
文件,放進去。
然后,請你在項目下創(chuàng)建一個
test.php
文件。注:UTF-8
文件格式
請先根據(jù)你機器的情況,填充以下代碼,用于連接數(shù)據(jù)庫:
復(fù)制代碼
代碼如下:
header('Content-Type:text/html;Charset=utf-8');
define('ROOT_PATH',
dirname(__FILE__));
define('DB_HOST',
'localhost');
//數(shù)據(jù)庫服務(wù)器地址
define('DB_USER',
'root');
//數(shù)據(jù)庫用戶名
define('DB_PWD',
'×××');//數(shù)據(jù)庫密碼
define('DB_NAME',
'×××');
//數(shù)據(jù)庫名稱
define('DB_PORT',
'3306');
//數(shù)據(jù)庫端口
function
__autoload($className)
{
require_once
ROOT_PATH
.
'/includes/'.
ucfirst($className)
.'.class.php';
//自動加載
class
文件
}
好了,上面的這些操作都是初步工作,下面正式進入類庫的講解。
類庫講解
首先,我們得實例化
M.class.php,實例化很簡單:
復(fù)制代碼
代碼如下:
$m
=
new
M();
//這步操作代表
M.class.php
中的所有功能都封裝在了變量
$m
中
注:
1、M類庫中的方法參數(shù)說明,請到
M.class.php
文件中看詳細的注釋,這里不再進行敘述。建議在學(xué)習(xí)的時候,對照著看下文件中的參數(shù)即注釋。
2、講解代碼中用到的數(shù)據(jù)庫結(jié)構(gòu)為:
復(fù)制代碼
代碼如下:
CREATE
TABLE
`user`
(
`id`
int(8)
unsigned
NOT
NULL
auto_increment,
`name`
varchar(50)
default
NULL,
`email`
varchar(100)
default
NULL,
`age`
smallint(3)
default
NULL,
`class_id`
int(8)
default
NULL,
`commit_time`
int(10)
default
NULL,
PRIMARY
KEY
(`id`),
KEY
`name`
(`name`)
)
ENGINE=MyISAM
DEFAULT
CHARSET=utf8
復(fù)制代碼
代碼如下:
CREATE
TABLE
`class`
(
`class_id`
int(8)
NOT
NULL
auto_increment,
`class_name`
varchar(100)
default
NULL,
PRIMARY
KEY
(`class_id`)
)
ENGINE=InnoDB
DEFAULT
CHARSET=utf8
并添加一條測試數(shù)據(jù)。
3、M類庫中,大部分方法都分兩中類型,即:SQL方法;拼接方法,具體在實例中可以看出
4、以下稱述中的
M
為
M.class.php
文件
方法1、Insert()
添加數(shù)據(jù)
Insert
方法的全部使用案例如下:
復(fù)制代碼
代碼如下:
$m-Insert("user",
null,
array('焦焦',
'liruxing1715@sina點抗 ',
'23',
time()));
//
拼接方法:往`user`表中添加一條數(shù)據(jù),返回值為數(shù)據(jù)庫影響的行數(shù)
$m-Insert("user",
null,
array('焦焦',
'liruxing1715@sina點抗 ',
'23',
time()),
true);
//
功能同上,返回
last_insert_id(插入的增長id)
$m-Insert("INSERT
INTO
`user`
(`name`,
`email`,
`age`,
`commit_time`)
VALUES
('張小花',
'zhangxiaohua@sina點抗 點吸煙 ',
'22',
'".time()."')");
//SQL方法,返回值為數(shù)據(jù)庫影響的行數(shù)
$m-Insert("INSERT
INTO
`user`
(`name`,
`email`,
`age`,
`commit_time`)
VALUES
('張小花',
'zhangxiaohua@sina點抗 點吸煙 ',
'22',
'".time()."')",
true);
//
同上,返回
last_insert_id
注:Insert
方法中的第二個參數(shù)若為null,可自動獲得插入表除
auto_increment
字段之外的所有字段,詳情請看M源文件;若要返回值為最后插入的
ID,那么請設(shè)置
Insert
方法的最后一個參數(shù)為
true(默認是false);
方法2、Update()
修改數(shù)據(jù)
update
方法的全部使用案例如下:
復(fù)制代碼
代碼如下:
$m-Update("user",
array('name'='李茹茹',
'age'=24),
"id=1");
//拼接方法,修改id為1的數(shù)據(jù)的名稱為“李茹茹”;年齡為“24”,其方法的返回值為受影響的行數(shù)
$m-Update("UPDATE
`user`
SET
`name`='李茹茹',
`age`=24
WHERE
id
=
1");
//SQL
用法,功能同上
方法3、Del()
刪除數(shù)據(jù)
Del
方法的全部使用案例如下:
復(fù)制代碼
代碼如下:
$m-Del('user',
'id=3');
//拼接方法:刪除`user`表中
id
為3的數(shù)據(jù),返回受影響的行數(shù)
$m-Del("DELETE
FROM
`user`
WHERE
id=4");
//SQL方法:刪除`user`表中
id
為4的數(shù)據(jù),返回受影響的行數(shù)
$m-Del("DELETE
FROM
`user`
WHERE
id
in
(10,
11,
12)");
//SQL方法:刪除多條數(shù)據(jù),刪除`user`表中
id
為
10、11、12
的數(shù)據(jù),返回受影響的行數(shù)
方法4、Total()
獲取記錄數(shù),返回值都為int
Del
方法的全部使用案例如下:
復(fù)制代碼
代碼如下:
$m-Total('user');
//拼接方法:返回
`user`表中的記錄數(shù),無條件
$m-Total('user',
'id1');
//拼接方法:返回
`user`表中
id
大于1的記錄數(shù),有條件
$m-Total("SELECT
COUNT(*)
AS
total
FROM
`user`");
//SQL方法,注:使用SQL方法,語句中必須使用
"AS
total",否則會報錯
方法5、IsExists()
檢查數(shù)據(jù)是否存在,返回值為boolean
復(fù)制代碼
代碼如下:
$m-IsExists('user',
"`name`='焦焦'");
//拼接方法:返回`user`表中是否存在`name`為“焦焦”的數(shù)據(jù),返回true,若不存在,返回false
方法6、InsertId()
獲取表下一個添加的自動增長id,注意,這里不進行添加操作,只是獲取下一個增長id
復(fù)制代碼
代碼如下:
echo
$m-InsertId('user');
//獲取`user`
表下一個添加的自動增長id
方法7、GetRow()
返回單條數(shù)據(jù),返回值為一維數(shù)組
GetRow
方法的全部使用案例如下:
復(fù)制代碼
代碼如下:
$data
=
$m-GetRow("SELECT
`name`,email
FROM
`user`
WHERE
id=1");
//SQL方法,返回一維數(shù)組,例如:Array
(
[name]
=
焦焦
[email]
=
liruxing1715@sina點抗
)
$data
=
$m-GetRow("SELECT
u.`name`,
u.email,
c.class_name
FROM
`user`
u,
`class`
c
WHERE
u.class_id=c.class_id
AND
u.id=1");
//SQL方法,多表查詢
$data
=
$m-GetRow('user',
'`name`,email',
"id=1");
//拼接方法
$data
=
$m-GetRow('user
as
u,`class`
c',
'u.`name`,u.email,c.class_name',
"u.id=1
AND
u.class_id=c.class_id");
//拼接方法,多表查詢
$data
=
$m-GetRow("SELECT
`name`,email
FROM
`user`");
//如果沒有指定條件應(yīng)該是顯示全部信息,但是在此方法中將默認顯示第一條(不推薦這么使用?。。。?/p>
$data
是查詢出來的一維數(shù)組。
方法8、GetOne()
返回單個數(shù)據(jù)
GetOne
方法的全部使用案例如下:
復(fù)制代碼
代碼如下:
$name
=
$m-GetOne("SELECT
`name`
FROM
`user`
WHERE
id=1");
//SQL方法,返回一個字符串,例如:焦焦
$name
=
$m-GetOne("user",
"name",
"id=1");
//拼接方法,返回一個字符串,例如:焦焦
方法9、FetchAll()
返回所有記錄
復(fù)制代碼
代碼如下:
$data
=
$m-FetchAll("user");
//返回`user`表中的所有記錄,以二維數(shù)組的形式
$data
=
$m-FetchAll("SELECT
*
FROM
`user`");
//SQL
方法,功能和返回值同上
$data
=
$m-FetchAll("user",
"name,email",
"id1",
'id
DESC',
'2');
//返回兩條id1的數(shù)據(jù),只顯示name,email,并且以id
為倒序排序。注:請注意該方法的最后一個參數(shù)也可以為'0,2',目的是為分頁準備的,如果第一頁為'0,2'的話,那么第二頁就是'2,2'
//該方法也支持聯(lián)表查詢和多表查詢,下面以聯(lián)表查詢?yōu)槔?/p>
$data
=
$m-FetchAll("`user`
as
u
LEFT
JOIN
`class`
as
c
ON
u.class_id=c.class_id",
"u.`name`,u.email,
c.class_name",
"u.id=1");
//注意:該拼接方法中,ON
添加的位置
注:對于該
FetchAll
方法,后續(xù)我會寫一篇使用該方法進行完美分頁的文章!!請關(guān)注。
方法10、MultiQuery()
執(zhí)行多條SQL語句
復(fù)制代碼
代碼如下:
$sql
=
"INSERT
INTO
user
(`name`,email,
age,
class_id,
commit_time)
VALUES
('賈花花',
'jiahuahua@sina點抗 點吸煙 ',
'22',
'1',
'".time()."')";
//添加一個名叫“賈花花”的學(xué)生信息
$sql
.=
";DELETE
FROM
`user`
WHERE
`name`='焦焦'";
//刪除一條名叫“焦焦”的學(xué)生信息
//解釋:$sql
是多條
SQL
以英文;(分號)拼接起來的
$data
=
$m-MultiQuery($sql);
//返回為true,代表執(zhí)行成功;為false,代表執(zhí)行失敗
類庫講解完畢
到此該類庫的全部功能就講解完畢,希望你能多看看M文件,了解其內(nèi)部運行的機制。M
文件不會存在執(zhí)行緩慢情況,請大家放心使用。
如果在使用過程中出現(xiàn)
SQL
拼接錯誤,類庫會報出友善的錯誤提示。
有問題請留言,歡迎大家的批評和建議,加油!學(xué)習(xí)好運。