導航:首頁 > 編程語言 > phpfilteremail

phpfilteremail

發布時間:2024-02-23 12:15:21

php的參考手冊

函數完整參考手冊: 序號分類描述1Array 函數2Calendar 函數日歷擴展包含了簡化不同日歷格式間的轉換的函數。 3Date/Time 函數Date/Time 函數用於從 PHP 腳本運行的伺服器上獲取日期和時間並進行格式化。 4Directory 函數Directory 函數用於獲得關於目錄及其內容的信息。 5Error/Logging 函數Error/Logging 函數用於對錯誤進行處理和記錄。 6Filesystem 函數Filesystem 函數用於訪問和操作文件系統。 7Filter 函數PHP 過濾器用於對來自非安全來源的數據(比如用戶輸入)進行驗證和過濾。 8FTP 函數FTP 函數通過文件傳輸協議 (FTP) 提供對文件伺服器的客戶端訪問。 9HTTP 函數HTTP 函數用於對由 Web 伺服器發送到瀏覽器的信息進行操作。 10Libxml 函數Libxml 函數和常量與 SimpleXML、XSLT 以及 DOM 函數一起使用。 11Mail 函數mail() 函數用於從腳本中直接發送電子郵件。 12Math 函數Math 函數能處理 integer 和 float 范圍內的值。 13雜項函數我們把不屬於其他類別的函數歸納到雜項函數類別。 14MySQLi 函數MySQLi 函數用於訪問 MySQL 資料庫伺服器。 15SimpleXML 函數SimpleXML 擴展提供了一種獲取 XML 元素的名稱和文本的簡單方式。16String 函數17XML Parser 函數XML Parser 函數允許您創建 XML 解析器,並為 XML 事件定義句柄。18Zip File 函數Zip File 函數允許您讀取壓縮文件。

Ⅱ php驗證郵箱格式

PHP正則表達式驗證郵箱示例如下:
<?php
$email='[email protected]';
$pattern="/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?/i";
if(preg_match($pattern,$email)){
echo '郵箱驗證通過!';
} else{
echo '郵箱格式錯誤!';
}
?>

Ⅲ PHP中處理異常有幾種方式請詳述

php中異常處理方法總結:
當異常被觸發時,通常會發生:
在PHP5中添加了類似於其它語言的錯誤異常處理模塊。在 PHP代碼中所產生的異常可被 throw語句拋出並被 catch 語句捕獲。需要進行異常處理的代碼都必須放入 try 代碼塊內,以便捕獲可能存在的異常。每一個 try 至少要有一個與之對應的 catch。使用多個 catch 可以捕獲不同的類所產生的異常。當 try 代碼塊不再拋出異常或者找不到 catch 能匹配所拋出的異常時,PHP 代碼就會在跳轉到最後一個 catch 的後面繼續執行。當然,PHP 允許在 catch 代碼塊內再次拋出(throw)異常。當一個異常被拋出時,其後(譯者註:指拋出異常時所在的代碼塊)的代碼將不會繼續執行,而 PHP 就會嘗試查找第一個能與之匹配的 catch。如果一個異常沒有被捕獲,而且又沒用使用 set_exception_handler() 作相應的處理的話,那麼 PHP 將會產生一個嚴重的錯誤,並且輸出 Uncaught Exception ... (未捕獲異常)的提示信息。
1、異常類的層級關系:
代碼如下 復制代碼
class NotFoundException extends Exception{}
class InputException extends Exception{}
class DBException extends Exception{}

2、配置未捕捉異常的處理器:
代碼如下 復制代碼
function exception_uncaught_handler(Exception $e) {
header('Content-type:text/html; charset=utf-8');
if ($e instanceof NotFoundException)
exit($e->getMessage());
elseif ($e instanceof DBException)
exit($e->getMessage());
else
exit($e->getMessage());
}
set_exception_handler('exception_uncaught_handler');

3、在資料庫連接代碼,手動拋出DBException異常但未使用try…catch進行捕獲處理,該異常將被PHP自定義異常處理器
代碼如下 復制代碼
exception_uncaught_handler()函數處理:
$this->resConn = mysql_connect ($CONFIGS['db_host'], $CONFIGS['db_user'], $CONFIGS['db_pwd']);
if (false == is_resource($this->resConn))
throw new DBException('資料庫連接失敗。'.mysql_error($this->resConn));

4、業務邏輯一瞥:

if (0 != strcmp($curAlbum->interest_id, $it))
throw new NotFoundException('很抱歉,你所訪問的相冊不存在');
以上就是PHP自定義異常處理器的具體使用方法

實例
代碼如下 復制代碼
<?php
class customException extends Exception
{
public function errorMessage()
{
//error message
$errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile()
.': <b>'.$this->getMessage().'</b> is not a valid E-Mail address';
return $errorMsg;
}
}
$email = "[email protected]";
try
{
//check if
if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)
{
//throw exception if email is not valid
throw new customException($email);
}
//check for "example" in mail address
if(strpos($email, "example") !== FALSE)
{
throw new Exception("$email is an example e-mail");
}
}
catch (customException $e)
{
echo $e->errorMessage();
}
catch(Exception $e)
{
echo $e->getMessage();
}
?>

例子解釋:
上面的代碼測試了兩種條件,如何任何條件不成立,則拋出一個異常:
1.customException() 類是作為舊的 exception 類的一個擴展來創建的。這樣它就繼承了舊類的所有屬性和方法。
2.創建 errorMessage() 函數。如果 e-mail 地址不合法,則該函數返回一個錯誤消息。
3.執行 "try" 代碼塊,在第一個條件下,不會拋出異常。
4.由於 e-mail 含有字元串 "example",第二個條件會觸發異常。
5."catch" 代碼塊會捕獲異常,並顯示恰當的錯誤消息
如果沒有捕獲 customException,緊緊捕獲了 base exception,則在那裡處理異常。
重新拋出異常
有時,當異常被拋出時,您也許希望以不同於標準的方式對它進行處理。可以在一個 "catch" 代碼塊中再次拋出異常。
代碼如下 復制代碼
<?php
/*
*/
/*
* 總結:PHP異常的使用方法分三步:
* 第一步:定義異常類,如果不定義就用系統默認的異常類;
* 第二步:當出現異常時用 throw 拋出異常,例如 ex1($num2);異常的參數是$num2用該異常的getMessage()獲取;
* 第三步:觸發異常,用try子句,當滿足條件時 throw new ex1($num);
* 第四步:catch捕獲異常 catch (ex2 $e),相當於實例化一個定義好的異常類ex2為$e;
*
* 注意,異常可以定義多個,但是只能觸發一個,也就是說只能用catch捕獲一個異常
*/
//================基本異常類
//創建可拋出一個異常的函數
function num($num){
if ($num>1){//異常拋出條件
$msg=」數值不能大於1″;//異常提示信息
throw new Exception($msg);//拋出異常
}
echo 「數值小於1″;
}
//在 「try」 代碼塊中觸發異常
try {
num(3);
echo 「執行正常」;
}
//捕獲異常
catch (Exception $e){
echo 「錯誤信息:」.$e->getMessage();//Exception()的系統方法獲取異常信息
echo 「錯誤文件:」.$e->getFile();//Exception()的系統方法獲取異常文件名
echo 「行數:」.$e->getLine();//Exception()的系統方法獲取異常行數
}
//======================================================================
echo 「<br>========================================================<br>」;
//擴展基本異常類
function checkEmail($email){//定義一個可以拋出異常的判斷EMAIL合法性的函數
if (filter_var($email,FILTER_VALIDATE_EMAIL)==false){
throw new checkEmailException($email);//拋出異常用EMAIL做參數
}
echo 「郵件合法」;
}
class checkEmailException extends Exception{//定義擴展異常類
public function errormsg(){
$msg=」錯誤原因:」.$this->getMessage().」不是一個合法的EMAIL地址!」;
$msg.=」錯誤文件名:」.$this->getFile();
$msg.=」錯誤行數:」.$this->getLine();
echo $msg;
}
}
$email=」email…[email protected]「;
try {//觸發異常
checkEmail($email);
}
//捕獲異常
catch (checkEmailException $e){
$e->errormsg();
}
//==================================多個異常的捕獲
echo 「<br>===================================================<br>」;
class ex1 extends Exception{//定義一個異常類
public function msg(){
$msg=」錯誤原因:」.$this->getMessage().」大於100<br>」;
$msg.=」錯誤文件:」.$this->getFile().」<Br>」;
$msg.=」錯誤代碼:」.$this->getCode().」<br>」;
$msg.=」行數:」.$this->getLine().」<br>」;
echo $msg;
}
}
class ex2 extends Exception{//定義一個異常類
public function msg(){
$msg=」錯誤原因:」.$this->getMessage().」等於100<br>」;
$msg.=」錯誤文件:」.$this->getFile().」<Br>」;
$msg.=」行數:」.$this->getLine().」<br>」;
echo $msg;
}
}
$num2=100;
try {
if ($num2>100){//當條件滿足時觸發
throw new ex1($num2);
}
if ($num2==100){//當條件滿足時觸發
throw new ex2($num2);
}
}
catch (ex2 $e){//捕獲觸發的異常
$e->msg();
}
catch (ex1 $e){//捕獲觸發的異常
$e->msg();
}
/*
* 總結:PHP異常的使用方法分三步:
* 第一步:定義異常類,如果不定義就用系統默認的異常類;
* 第二步:當出現異常時用 throw 拋出異常,例如 ex1($num2);異常的參數是$num2用該異常的getMessage()獲取;
* 第三步:觸發異常,用try子句,當滿足條件時 throw new ex1($num);
* 第四步:catch捕獲異常 catch (ex2 $e),相當於實例化一個定義好的異常類ex2為$e;
*
* 注意,異常可以定義多個,但是只能觸發一個,也就是說只能用catch捕獲一個異常
*/
?>

Ⅳ 用PHP發送電子郵件的方法

<?
/*
* 郵件發送類
*/
class smail {
//您的SMTP 伺服器供應商,可以是域名或IP地址
var $smtp = "";
//SMTP需要要身份驗證設值為 1 不需要身份驗證值為 0,現在大多數的SMTP服務商都要驗證,如不清楚請與你的smtp 服務商聯系。
var $check = 1;
//您的email帳號名稱
var $username = "";
//您的email密碼
var $password = "";
//此email 必需是發信伺服器上的email
var $s_from = "";

/*
* 功能:發信初始化設置
* $from 你的發信伺服器上的郵箱
* $password 你的郵箱密碼
* $smtp 您的SMTP 伺服器供應商,可以是域名或IP地址
* $check SMTP需要要身份驗證設值為 1 不需要身份驗證值為 0,現在大多數的SMTP服務商都要驗證
*/
function smail ( $from, $password, $smtp, $check = 1 ) {
if( preg_match("/^[^\d\-_][\w\-]*[^\-_]@[^\-][a-zA-Z\d\-]+[^\-](\.[^\-][a-zA-Z\d\-]*[^\-])*\.[a-zA-Z]{2,3}/", $from ) ) {
$this->username = substr( $from, 0, strpos( $from , "@" ) );
$this->password = $password;
$this->smtp = $smtp ? $smtp : $this->smtp;
$this->check = $check;
$this->s_from = $from;
}
}

/*
* 功能:發送郵件
* $to 目標郵箱
* $from 來源郵箱
* $subject 郵件標題
* $message 郵件內容
*/
function send ( $to, $from, $subject, $message ) {

//連接伺服器
$fp = fsockopen ( $this->smtp, 25, $errno, $errstr, 60);
if (!$fp ) return "聯接伺服器失敗".__LINE__;
set_socket_blocking($fp, true );

$lastmessage=fgets($fp,512);
if ( substr($lastmessage,0,3) != 220 ) return "錯誤信息1:$lastmessage".__LINE__;

//HELO
$yourname = "YOURNAME";
if($this->check == "1") $lastact="EHLO ".$yourname."\r\n";
else $lastact="HELO ".$yourname."\r\n";

fputs($fp, $lastact);
$lastmessage == fgets($fp,512);
if (substr($lastmessage,0,3) != 220 ) return "錯誤信息2:$lastmessage".__LINE__;
while (true) {
$lastmessage = fgets($fp,512);
if ( (substr($lastmessage,3,1) != "-") or (empty($lastmessage)) )
break;
}

//身份驗證
if ($this->check=="1") {
//驗證開始
$lastact="AUTH LOGIN"."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "錯誤信息3:$lastmessage".__LINE__;
//用戶姓名
$lastact=base64_encode($this->username)."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "錯誤信息4:$lastmessage".__LINE__;
//用戶密碼
$lastact=base64_encode($this->password)."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != "235") return "錯誤信息5:$lastmessage".__LINE__;
}

//FROM:
$lastact="MAIL FROM: <". $this->s_from . ">\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "錯誤信息6:$lastmessage".__LINE__;

//TO:
$lastact="RCPT TO: <". $to ."> \r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "錯誤信息7:$lastmessage".__LINE__;

//DATA
$lastact="DATA\r\n";
fputs($fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 354) return "錯誤信息8:$lastmessage".__LINE__;

//處理Subject頭
$head="Subject: $subject\r\n";
$message = $head."\r\n".$message;

//處理From頭
$head="From: $from\r\n";
$message = $head.$message;

//處理To頭
$head="To: $to\r\n";
$message = $head.$message;

//加上結束串
$message .= "\r\n.\r\n";

//發送信息
fputs($fp, $message);
$lastact="QUIT\r\n";

fputs($fp,$lastace);
fclose($fp);
return 0;
}
}
/*發送示例
$sm = new smail( "用戶名@163.com", "密碼", "smtp.163.com" );
$end = $sm->send( "目標郵箱", "來源郵箱", "這是標題", "這是郵件內容" );
if( $end ) echo $end;
else echo "發送成功!";
*/
?>

Ⅳ php怎麼通過郵件的方式發送一封URL帶參數的地址的郵件

思想:

通過str_replace來替換掉參數的位置。

//設$content為郵件內容
$content=<<<EOF
<palign="center"><ahref='https://www.m78.co/get.php?code=$code'>Clickmetogetyoghurt!</a><br>
</p>
EOF;
//設$str為被替換的字元串
//設$code為替換字元串,現在要替換掉$content中的"$code"為真正的變數$code。
$str='$code';
$code=$_GET['code'];
$content=str_replace($str,$code,$content);
//最終就可以實現發送一封URL帶參數郵件的效果了

總結:

此種情況的確比較特殊,但我們平常還是應該多補習一下PHP的函數,在實戰中發揮。

關於我:

Ⅵ php中mail函數發送郵件失敗的解決方法

本文實例講述了php中mail函數發送郵件失敗的解決方法。分享給大家供大家參考。具體分析如下:
php中mail函數是一個自帶的發郵件的函數,但是如果你真的要使用mail函數來發郵件那必須是要給你系統安裝sendmail組件才可以,下面我就碰到mail發送不了郵件的問題,下面一起來看看解決辦法吧.
之前的那台伺服器轉移過來後,發現網站用mail()發送郵件發不了,但是發現sendmail明明已經安裝,如果沒有安裝sendmail可以執行,代碼如下:
復制代碼
代碼如下:yum
install
sendmail
對了,主機名要設置一個域名格式的,例如:jb51.net,不然重啟sendmail的時候會特別久才啟動起來,否則要等很久,代碼如下:
復制代碼
代碼如下:hostname
jb51.net
接著看看sendmail是否正常運行,代碼如下:
復制代碼
代碼如下:service
sendmail
status
如果沒有運行可以啟動,status換成start,緊接著,編輯php.ini,可以在web環境下創建一個phpinfo,因為我用的是lnmp.
復制代碼
代碼如下:vi
/usr/local/php/etc/php.ini
再查找:;sendmail_path
=,按i編輯,替換為:
復制代碼
代碼如下:sendmail_path
=
/usr/sbin/sendmail
-t
-i
我的系統默認的是:復制代碼
代碼如下:sendmail_path
=
/usr/sbin/sendmail
-t
-i
-f
這個-f
看來是讓mail函數停用了,去掉-f後mail函數工作恢復正常,緊接著,重啟PHP進程,一般是:service
php
restart
LNMP是:service
php-fpm
restart,Apache下可以:service
httpd
restart
給大家分享個php腳本測試代碼,代碼如下:
復制代碼
代碼如下:<?php
$send
=
mail('[email protected]',
'郵件標題',
'測試郵件內容,如果收到此郵件,表示mail函數成功啟用!');
if($send){
echo
'true';
}else{
echo
'false';
}
?>
如果返回結果false說明郵件發送失敗,如果返回true表示郵件發送成功.
希望本文所述對大家的php程序設計有所幫助。

Ⅶ PHP用正則表達式做注冊頁面

// 定義正則表達式
$username_pattern = "/^[a-zA-Z0-9_-]{3,16}$/"; // 用戶名必須是 3-16 位英文字母、數字、下劃線或短橫線
$password_pattern = "/^[a-zA-Z0-9_-]{6,18}$/"; // 密碼必須是派豎型 6-18 位英文字母、數字、下劃線或短橫線
$email_pattern = "/^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$/"; // 郵箱必須符合常規格式
// 獲取表單數據
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
// 驗證用戶名
if (!preg_match($username_pattern, $username)) {
echo "用戶名不合法";
exit;
}
// 驗證密碼塵猜
if (!preg_match($password_pattern, $password)) {
echo "密碼不合法";
exit;
}
// 驗證郵箱
if (!preg_match($email_pattern, $email)) {
echo "郵箱不合法";
exit;
}
// 如果所有表單數據都合法,就將數據纖老插入資料庫或執行其他操作
上述代碼中,使用了 PHP 的 preg_match 函數來進行正則表達式匹配。如果正則表達式匹配成功,函數返回 1,否則返回 0。通過判斷返回值來確定表單數據是否合法。
當然,這只是一個示例,具體的正則表達式和表單驗證邏輯需要根據實際情況進行調整。

閱讀全文

與phpfilteremail相關的資料

熱點內容
伺服器加密方式哪種好 瀏覽:120
顯示加密服務超時 瀏覽:610
日語口譯pdf 瀏覽:432
外人如何評價身邊的程序員 瀏覽:105
霍夫曼編碼壓縮演算法 瀏覽:122
我想學習單片機 瀏覽:644
陳寶蓮拍過 瀏覽:336
遙調命令的設定命令實現過程 瀏覽:76
演算法中最壞情況都為多少 瀏覽:995
排序演算法圖形化展示 瀏覽:782
看電影免費網站入口 瀏覽:447
加密U盤啟動區和交換區格式化 瀏覽:247
求不需要下載播放器就能看的網站 瀏覽:828
日本重生電影在線 瀏覽:623
女的被一個小孩上了 瀏覽:948
macandroid找不到設備 瀏覽:514
漫威電影不能投屏了怎麼破 瀏覽:308
安卓qq最新版本怎麼解綁手機號 瀏覽:681
經典三極3d版古裝劇 瀏覽:172
phpcurljsonget 瀏覽:913