本文目錄一覽:
- 1、PHP郵件發送
- 2、thinkphp3.1怎麼做發送郵件
- 3、如何載入第三方類庫phpexcel的所有PHP文件
- 4、如何用php結合phpmailer發送郵件
- 5、PHP資料庫操作之基於Mysqli的資料庫操作類庫
- 6、怎樣在thinkphp中整合phpmail
PHP郵件發送
首先去下載一個phpmailer的壓縮包(隨便一搜就可以找的到)
然後解壓
代碼如下:
?php
require(“phpmailer/class.phpmailer.php”); //引入文件(把剛才解壓的那些文件放到對應的路徑就可以了)
$mail = new PHPMailer(); //實例化
$mail-IsSMTP(); // 啟用SMTP
$mail-Host=”smtp.126.com”; //smtp伺服器的名稱(這裡以126郵箱為例)
$mail-SMTPAuth = true; //啟用smtp認證
$mail-Username = “******@126.com”; //你的郵箱名
$mail-Password = “*****”; //郵箱密碼
$mail-From = “****@126.com”; //發件人地址(也就是你的郵箱地址)
$mail-FromName = “****”; //發件人姓名
$mail-AddAddress(“收件人地址”,”收件人姓名”); //添加收件人
$mail-AddReplyTo(“*****@126.com”, “****”); //回復地址(可填可不填)
$mail-WordWrap = 50; //設置每行字元長度
$mail-AddAttachment(“images/01.jpg”, “manu.jpg”); // 添加附件,並指定名稱
$mail-IsHTML(true); // 是否HTML格式郵件
$mail-CharSet=”utf-8″; //設置郵件編碼
$mail-Subject = “****”; //郵件主題
$mail-Body = “******”; //郵件內容
$mail-AltBody = “This is the body in plain text for non-HTML mail clients”; //郵件正文不支持HTML的備用顯示
if(!$mail-Send())
{
echo “Message could not be sent. p”;
echo “Mailer Error: ” . $mail-ErrorInfo;
exit();
} else {
echo “Message has been sent”;
}
?
thinkphp3.1怎麼做發送郵件
ThinkPHP郵件發送函數方法
/**
* 系統郵件發送函數
* @param string $to 接收郵件者郵箱
* @param string $name 接收郵件者名稱
* @param string $subject 郵件主題
* @param string $body 郵件內容
* @param string $attachment 附件列表
* @return boolean
*/
function think_send_mail($to, $name, $subject = ”, $body = ”, $attachment = null){
$config = C(‘THINK_EMAIL’);
vendor(‘PHPMailer.class#phpmailer’); //從PHPMailer目錄導class.phpmailer.php類文件
$mail = new PHPMailer(); //PHPMailer對象
$mail-CharSet = ‘UTF-8’; //設定郵件編碼,默認ISO-8859-1,如果發中文此項必須設置,否則亂碼
$mail-IsSMTP(); // 設定使用SMTP服務
$mail-SMTPDebug = 0; // 關閉SMTP調試功能
// 1 = errors and messages
// 2 = messages only
$mail-SMTPAuth = true; // 啟用 SMTP 驗證功能
$mail-SMTPSecure = ‘ssl’; // 使用安全協議
$mail-Host = $config[‘SMTP_HOST’]; // SMTP 伺服器
$mail-Port = $config[‘SMTP_PORT’]; // SMTP伺服器的埠號
$mail-Username = $config[‘SMTP_USER’]; // SMTP伺服器用戶名
$mail-Password = $config[‘SMTP_PASS’]; // SMTP伺服器密碼
$mail-SetFrom($config[‘FROM_EMAIL’], $config[‘FROM_NAME’]);
$replyEmail = $config[‘REPLY_EMAIL’]?$config[‘REPLY_EMAIL’]:$config[‘FROM_EMAIL’];
$replyName = $config[‘REPLY_NAME’]?$config[‘REPLY_NAME’]:$config[‘FROM_NAME’];
$mail-AddReplyTo($replyEmail, $replyName);
$mail-Subject = $subject;
$mail-MsgHTML($body);
$mail-AddAddress($to, $name);
if(is_array($attachment)){ // 添加附件
foreach ($attachment as $file){
is_file($file) $mail-AddAttachment($file);
}
}
return $mail-Send() ? true : $mail-ErrorInfo;
此函數只能在ThinkPHP中使用且需要phpmailer擴展的支持;
phpmailer擴展的放置目錄為 ThinkPHP/Extend/Vendor/PHPMailer/class.phpmailer.php
phpmail的下載地址:
使用此函數 必須在項目中加入以下配置項
//郵件配置
‘THINK_EMAIL’ = array(
‘SMTP_HOST’ = ‘smtp.aaa.com’, //SMTP伺服器
‘SMTP_PORT’ = ‘465’, //SMTP伺服器埠
‘SMTP_USER’ = ‘mail@aaa.com’, //SMTP伺服器用戶名
‘SMTP_PASS’ = ‘password’, //SMTP伺服器密碼
‘FROM_EMAIL’ = ‘mail@aaa.com’, //發件人EMAIL
‘FROM_NAME’ = ‘ThinkPHP’, //發件人名稱
‘REPLY_EMAIL’ = ”, //回復EMAIL(留空則為發件人EMAIL)
‘REPLY_NAME’ = ”, //回複名稱(留空則為發件人名稱)
),
如何載入第三方類庫phpexcel的所有PHP文件
第一步 網上下載PHPExcel類庫包,解壓後
打開Classes目錄可以看到有個PHPExcel.php文件,將這個文件更名為PHPExcel.class.php
第二步 將整個目錄放到項目的ORG目錄下此時的目錄結構
第三步 利用thinkphp的import方法在Action中將PHPExcel類導入
import ( ‘@.ORG.PHPExcel.Classes.PHPExcel’ );
這樣你就可以使用PHPExcel類庫所提供的操作Excel文檔的方法了
如何用php結合phpmailer發送郵件
?php
header(“content-type:text/html;charset=utf-8”);
ini_set(“magic_quotes_runtime”,0);
require ‘php_mail/class.phpmailer.php’;
require ‘php_mail/class.smtp.php’;
function send_mail($to,$fromname,$title,$content){
try {
$mail = new PHPMailer(true);
$mail-IsSMTP();
$mail-CharSet=’UTF-8′; //設置郵件的字元編碼,這很重要,不然中文亂碼
$mail-SMTPAuth = true; //開啟認證
$mail-Port = 25; //埠請保持默認
$mail-Host = “smtp.163.com”; //使用QQ郵箱發送
$mail-Username = “xxxxxxxxxx@163.com”; //這個可以替換成自己的郵箱
$mail-Password = “xxxxxxxxxxxxxxx”; //注意 這裡是寫smtp的授權碼 寫的不是QQ密碼,此授權碼不可用
//$mail-IsSendmail(); //如果沒有sendmail組件就注釋掉,否則出現「Could not execute: /var/qmail/bin/sendmail 」的錯誤提示
$mail-AddReplyTo(“xxxxxxxxx@163.com”,”mckee”);//回復地址
$mail-From = “xxxxxxxxxxx@163.com”;
$mail-FromName = $fromname;
$to = $to;
$mail-AddAddress($to);
$mail-Subject = $title;
$mail-Body = $content;
$mail-AltBody = “To view the message, please use an HTML compatible email viewer!”; //當郵件不支持html時備用顯示,可以省略
$mail-WordWrap = 80; // 設置每行字元串的長度
//$mail-AddAttachment(“f:/test.png”); //可以添加附件
$mail-IsHTML(true);
$mail-Send();
// echo ‘郵件已發送’;
} catch (phpmailerException $e) {
// echo “郵件發送失敗:”.$e-errorMessage();
}
return true;
}
$neirong=”聯繫電話:”.$_POST[‘phone’].”br /”.$_POST[‘content’].”hrp style=’float:right;’郵件來自官網/p”;
send_mail(‘654080169@qq.com’,$_POST[‘fromname’],’來信了ヾ(≧O≦)〃嗷~’,$neirong);
// send_mail(‘1486064793@qq.com’,$_POST[‘fromname’],’可愛的保氧家官網來信了ヾ(≧O≦)〃嗷~’,$neirong);
//環境 PHP5.3親測可用
?
下載郵件類,結合這個就可以了
PHP資料庫操作之基於Mysqli的資料庫操作類庫
此類庫簡單、易用,便於你自己修改和對功能的改善,能解決大部分
PHP
項目中執行的
SQL
操作。
初步工作
首先,請大家下載這個類庫
M.class.php 再下載一個
Mysqli
連接資料庫的類庫
MysqliDb.class.php(打包下載地址)
新建一個
includes
的文件夾,將下載下來的兩個
class
文件,放進去。
然後,請你在項目下創建一個
test.php
文件。註:UTF-8
文件格式
請先根據你機器的情況,填充以下代碼,用於連接資料庫:
複製代碼
代碼如下:
header(‘Content-Type:text/html;Charset=utf-8’);
define(‘ROOT_PATH’,
dirname(__FILE__));
define(‘DB_HOST’,
‘localhost’);
//資料庫伺服器地址
define(‘DB_USER’,
‘root’);
//資料庫用戶名
define(‘DB_PWD’,
‘×××’);//資料庫密碼
define(‘DB_NAME’,
‘×××’);
//資料庫名稱
define(‘DB_PORT’,
‘3306’);
//資料庫埠
function
__autoload($className)
{
require_once
ROOT_PATH
.
‘/includes/’.
ucfirst($className)
.’.class.php’;
//自動載入
class
文件
}
好了,上面的這些操作都是初步工作,下面正式進入類庫的講解。
類庫講解
首先,我們得實例化
M.class.php,實例化很簡單:
複製代碼
代碼如下:
$m
=
new
M();
//這步操作代表
M.class.php
中的所有功能都封裝在了變數
$m
中
註:
1、M類庫中的方法參數說明,請到
M.class.php
文件中看詳細的注釋,這裡不再進行敘述。建議在學習的時候,對照著看下文件中的參數即注釋。
2、講解代碼中用到的資料庫結構為:
複製代碼
代碼如下:
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
複製代碼
代碼如下:
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
並添加一條測試數據。
3、M類庫中,大部分方法都分兩中類型,即:SQL方法;拼接方法,具體在實例中可以看出
4、以下稱述中的
M
為
M.class.php
文件
方法1、Insert()
添加數據
Insert
方法的全部使用案例如下:
複製代碼
代碼如下:
$m-Insert(“user”,
null,
array(‘焦焦’,
‘liruxing1715@sina.com’,
’23’,
time()));
//
拼接方法:往`user`表中添加一條數據,返回值為資料庫影響的行數
$m-Insert(“user”,
null,
array(‘焦焦’,
‘liruxing1715@sina.com’,
’23’,
time()),
true);
//
功能同上,返回
last_insert_id(插入的增長id)
$m-Insert(“INSERT
INTO
`user`
(`name`,
`email`,
`age`,
`commit_time`)
VALUES
(‘張小花’,
‘zhangxiaohua@sina.com.cn’,
’22’,
‘”.time().”‘)”);
//SQL方法,返回值為資料庫影響的行數
$m-Insert(“INSERT
INTO
`user`
(`name`,
`email`,
`age`,
`commit_time`)
VALUES
(‘張小花’,
‘zhangxiaohua@sina.com.cn’,
’22’,
‘”.time().”‘)”,
true);
//
同上,返回
last_insert_id
註:Insert
方法中的第二個參數若為null,可自動獲得插入表除
auto_increment
欄位之外的所有欄位,詳情請看M源文件;若要返回值為最後插入的
ID,那麼請設置
Insert
方法的最後一個參數為
true(默認是false);
方法2、Update()
修改數據
update
方法的全部使用案例如下:
複製代碼
代碼如下:
$m-Update(“user”,
array(‘name’=’李茹茹’,
‘age’=24),
“id=1”);
//拼接方法,修改id為1的數據的名稱為「李茹茹」;年齡為「24」,其方法的返回值為受影響的行數
$m-Update(“UPDATE
`user`
SET
`name`=’李茹茹’,
`age`=24
WHERE
id
=
1″);
//SQL
用法,功能同上
方法3、Del()
刪除數據
Del
方法的全部使用案例如下:
複製代碼
代碼如下:
$m-Del(‘user’,
‘id=3’);
//拼接方法:刪除`user`表中
id
為3的數據,返回受影響的行數
$m-Del(“DELETE
FROM
`user`
WHERE
id=4″);
//SQL方法:刪除`user`表中
id
為4的數據,返回受影響的行數
$m-Del(“DELETE
FROM
`user`
WHERE
id
in
(10,
11,
12)”);
//SQL方法:刪除多條數據,刪除`user`表中
id
為
10、11、12
的數據,返回受影響的行數
方法4、Total()
獲取記錄數,返回值都為int
Del
方法的全部使用案例如下:
複製代碼
代碼如下:
$m-Total(‘user’);
//拼接方法:返回
`user`表中的記錄數,無條件
$m-Total(‘user’,
‘id1’);
//拼接方法:返回
`user`表中
id
大於1的記錄數,有條件
$m-Total(“SELECT
COUNT(*)
AS
total
FROM
`user`”);
//SQL方法,註:使用SQL方法,語句中必須使用
“AS
total”,否則會報錯
方法5、IsExists()
檢查數據是否存在,返回值為boolean
複製代碼
代碼如下:
$m-IsExists(‘user’,
“`name`=’焦焦'”);
//拼接方法:返回`user`表中是否存在`name`為「焦焦」的數據,返回true,若不存在,返回false
方法6、InsertId()
獲取表下一個添加的自動增長id,注意,這裡不進行添加操作,只是獲取下一個增長id
複製代碼
代碼如下:
echo
$m-InsertId(‘user’);
//獲取`user`
表下一個添加的自動增長id
方法7、GetRow()
返回單條數據,返回值為一維數組
GetRow
方法的全部使用案例如下:
複製代碼
代碼如下:
$data
=
$m-GetRow(“SELECT
`name`,email
FROM
`user`
WHERE
id=1″);
//SQL方法,返回一維數組,例如:Array
(
[name]
=
焦焦
[email]
=
liruxing1715@sina.com
)
$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`”);
//如果沒有指定條件應該是顯示全部信息,但是在此方法中將默認顯示第一條(不推薦這麼使用!!!)
$data
是查詢出來的一維數組。
方法8、GetOne()
返回單個數據
GetOne
方法的全部使用案例如下:
複製代碼
代碼如下:
$name
=
$m-GetOne(“SELECT
`name`
FROM
`user`
WHERE
id=1″);
//SQL方法,返回一個字元串,例如:焦焦
$name
=
$m-GetOne(“user”,
“name”,
“id=1”);
//拼接方法,返回一個字元串,例如:焦焦
方法9、FetchAll()
返回所有記錄
複製代碼
代碼如下:
$data
=
$m-FetchAll(“user”);
//返回`user`表中的所有記錄,以二維數組的形式
$data
=
$m-FetchAll(“SELECT
*
FROM
`user`”);
//SQL
方法,功能和返回值同上
$data
=
$m-FetchAll(“user”,
“name,email”,
“id1”,
‘id
DESC’,
‘2’);
//返回兩條id1的數據,只顯示name,email,並且以id
為倒序排序。註:請注意該方法的最後一個參數也可以為’0,2’,目的是為分頁準備的,如果第一頁為’0,2’的話,那麼第二頁就是’2,2′
//該方法也支持聯表查詢和多表查詢,下面以聯表查詢為例
$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
方法,後續我會寫一篇使用該方法進行完美分頁的文章!!請關注。
方法10、MultiQuery()
執行多條SQL語句
複製代碼
代碼如下:
$sql
=
“INSERT
INTO
user
(`name`,email,
age,
class_id,
commit_time)
VALUES
(‘賈花花’,
‘jiahuahua@sina.com.cn’,
’22’,
‘1’,
‘”.time().”‘)”;
//添加一個名叫「賈花花」的學生信息
$sql
.=
“;DELETE
FROM
`user`
WHERE
`name`=’焦焦'”;
//刪除一條名叫「焦焦」的學生信息
//解釋:$sql
是多條
SQL
以英文;(分號)拼接起來的
$data
=
$m-MultiQuery($sql);
//返回為true,代表執行成功;為false,代表執行失敗
類庫講解完畢
到此該類庫的全部功能就講解完畢,希望你能多看看M文件,了解其內部運行的機制。M
文件不會存在執行緩慢情況,請大家放心使用。
如果在使用過程中出現
SQL
拼接錯誤,類庫會報出友善的錯誤提示。
有問題請留言,歡迎大家的批評和建議,加油!學習好運。
怎樣在thinkphp中整合phpmail
用PHPExcel,PHPExcel是相當強大的 MS Office Excel 文檔生成類庫。
你上它的官/網把程序包下/載下來,裡面有 PHPExcel 的程序、還有30個實常式序和三個文檔。
看一下其中的開發文檔你就會用了。
讀取(這段在開發文檔里有的,在13頁):
require_once ‘../Classes/PHPExcel/IOFactory.php’;
$objReader = PHPExcel_IOFactory::createReader(‘Excel2007’);
$objReader-setReadDataOnly(true);
$objPHPExcel = $objReader-load(“test.xlsx”);
$objWorksheet = $objPHPExcel-getActiveSheet();
echo ‘table’ . “\n”;
foreach ($objWorksheet-getRowIterator() as $row) {
echo ‘tr’ . “\n”;
$cellIterator = $row-getCellIterator();
$cellIterator-setIterateOnlyExistingCells(false);
foreach ($cellIterator as $cell) {
echo ‘td’ . $cell-getValue() . ‘/td’ . “\n”;
}
echo ‘/tr’ . “\n”;
}
echo ‘/table’ . “\n”;
?
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/285145.html