当前位置:  编程技术>php
本页文章导读:
    ▪可显示多种图形报表的php图片类      可显示多种图形报表的php图片类,包括竖柱形图,横柱形图,画柱形图,折线图,饼状图。 是学习php图像处理的好例子,供大家学习参考。   代码如下: <?php //图类 class ImageReport{  var $X.........
    ▪php5类中三种数据类型的区别      一、php类中数据类型 public: 公有类型 在子类中可以通过self::var 来调用 public类型的方法或属性 可以通过parent::method 来调用父类中的方法 在实例中可以能过$obj->var 来调用 public类型的.........
    ▪php写的smtp邮件发送类      首先,给大家演示一下调用示例:   代码如下: <?php $smtpserver = "*****"; $smtpserverport = 25; $smtpuser = "******"; $smtppass = "*******"; $smtp = new smtp($smtpserver, $smtpserverport, true, $smtpuser, $smtppass); //这.........

[1]可显示多种图形报表的php图片类
    来源: 互联网  发布时间: 2013-12-24

可显示多种图形报表的php图片类,包括竖柱形图,横柱形图,画柱形图,折线图,饼状图。
是学习php图像处理的好例子,供大家学习参考。
 

代码如下:
<?php //图类
class ImageReport{
 var $X;//图片大小X轴
 var $Y;//图片大小Y轴
 var $R;//背影色R值
 var $G;//...G.
 var $B;//...B.
 var $TRANSPARENT;//是否透明1或0
 var $IMAGE;//图片对像
 //-------------------
 var $ARRAYSPLIT;//指定用于分隔数值的符号
 var $ITEMARRAY;//数值
 var $REPORTTYPE;//图表类型,1为竖柱形2为横柱形3为折线形
 var $BORDER;//距离
 //-------------------
 var $FONTSIZE;//字体大小
 var $FONTCOLOR;//字体颜色
 
 var $numX = 1;//X轴起始刻度值
 var $stepX = 1;//X轴每一个刻度间隔值
 
 //--------参数设置函数
 function setImage($SizeX,$SizeY,$R,$G,$B,$Transparent){
  $this->X=$SizeX;
  $this->Y=$SizeY;
  $this->R=$R;
  $this->G=$G;
  $this->B=$B;
  $this->TRANSPARENT=$Transparent;
 }
 function setItem($ArraySplit,$ItemArray,$ReportType,$Border){
  $this->ARRAYSPLIT=$ArraySplit;
  $this->ITEMARRAY=$ItemArray;
  $this->REPORTTYPE=$ReportType;
  $this->BORDER=$Border;
 }
 function setFont($FontSize){
  $this->FONTSIZE=$FontSize;
 }
 //X轴刻度值设置
 function setX($numX = 1, $stepX = 1){
  $this->numX = $numX;
  $this->stepX = $stepX;
 }
 //----------------主体
 function PrintReport(){
   //建立画布大小
   $this->IMAGE=ImageCreate($this->X,$this->Y);
   //设定画布背景色
   $background=ImageColorAllocate($this->IMAGE,$this->R,$this->G,$this->B);
   if($this->TRANSPARENT=="1"){
    //背影透明
    Imagecolortransparent($this->IMAGE,$background);
   }else{
    //如不要透明时可填充背景色
    ImageFilledRectangle($this->IMAGE,0,0,$this->X,$this->Y,$background);
   }
   //参数字体文小及颜色
   $this->FONTCOLOR=ImageColorAllocate($this->IMAGE,255-$this->R,255-$this->G,255-$this->B);
   Switch ($this->REPORTTYPE){
    case "0":
     break;
    case "1":
     $this->imageColumnS();
     break;
    case "2":
     $this->imageColumnH();
     break;
    case "3":
     $this->imageLine();
     break;
    case "4":
     $this->imageCircle();
     break;  
   }
   $this->printXY();
   $this->printAll();
 }
 //-----------打印XY坐标轴
 function printXY(){
   $rulerY = $rulerX = "";
   //画XY坐标轴*/
   $color=ImageColorAllocate($this->IMAGE,255-$this->R,255-$this->G,255-$this->B);
   $xx=$this->X/10;
   $yy=$this->Y-$this->Y/10;
   ImageLine($this->IMAGE,$this->BORDER,$this->BORDER,$this->BORDER,$this->Y-$this->BORDER,$color);//X轴
   ImageLine($this->IMAGE,$this->BORDER,$this->Y-$this->BORDER,$this->X-$this->BORDER,$this->Y-$this->BORDER,$color);//y轴
   imagestring($this->IMAGE, $this->FONTSIZE, $this->BORDER-2, $this->Y-$this->BORDER+5, "0", $color);
   //Y轴上刻度
   $rulerY=$this->Y-$this->BORDER;
   $i = 0;
   while($rulerY>$this->BORDER*2){
    $rulerY=$rulerY-$this->BORDER;
    ImageLine($this->IMAGE,$this->BORDER,$rulerY,$this->BORDER-2,$rulerY,$color);
  
    if($this->REPORTTYPE == 2){//横柱图
     imagestring($this->IMAGE, $this->FONTSIZE, $this->BORDER-10, $rulerY-2-$this->BORDER*($i+.5), $this->numX, $color);
     $this->numX += $this->stepX;
    }
    $i++;
   }
   //X轴上刻度
   $rulerX=$rulerX+$this->BORDER;
   $i = 0;
   while($rulerX<($this->X-$this->BORDER*2)){
    $rulerX=$rulerX+$this->BORDER;
    //ImageLine($this->IMAGE,$this->BORDER,10,$this->BORDER+10,10,$color);
    ImageLine($this->IMAGE,$rulerX,$this->Y-$this->BORDER,$rulerX,$this->Y-$this->BORDER+2,$color);
  
    //刻度值
    if($this->REPORTTYPE == 1){//竖柱图
     imagestring($this->IMAGE, $this->FONTSIZE, $rulerX-2+$this->BORDER*($i+.5), $this->Y-$this->BORDER+5, $this->numX, $color);
     $this->numX += $this->stepX;
    }else if($this->REPORTTYPE == 3){//折线图
     imagestring($this->IMAGE, $this->FONTSIZE, $rulerX-2, $this->Y-$this->BORDER+5, $this->numX, $color);
     $this->numX += $this->stepX;
    }
    $i++;
   }
 }
 
 //--------------竖柱形图
 function imageColumnS(){
   $item_array=Split($this->ARRAYSPLIT,$this->ITEMARRAY);
   $num=Count($item_array);
   $item_max=0;
   for ($i=0;$i<$num;$i++){
    $item_max=Max($item_max,$item_array[$i]);
   }
   $xx=$this->BORDER*2;
   //画柱形图
   for ($i=0;$i<$num;$i++){
    srand((double)microtime()*1000000);
    if($this->R!=255 && $this->G!=255 && $this->B!=255){
     $R=Rand($this->R,200);
     $G=Rand($this->G,200);
     $B=Rand($this->B,200);
    }else{
     $R=Rand(50,200);
     $G=Rand(50,200);
     $B=Rand(50,200);
    }
    $color=ImageColorAllocate($this->IMAGE,$R,$G,$B);
    //柱形高度
    $height=($this->Y-$this->BORDER)-($this->Y-$this->BORDER*2)*($item_array[$i]/$item_max);
    ImageFilledRectangle($this->IMAGE,$xx,$height,$xx+$this->BORDER,$this->Y-$this->BORDER,$color);
    ImageString($this->IMAGE,$this->FONTSIZE,$xx,$height-$this->BORDER,$item_array[$i],$this->FONTCOLOR);
    //用于间隔
    $xx=$xx+$this->BORDER*2;
   }
 }
 //-----------横柱形图
 function imageColumnH(){
   $item_array=Split($this->ARRAYSPLIT,$this->ITEMARRAY);
   $num=Count($item_array);
   $item_max=0;
   for ($i=0;$i<$num;$i++){
    $item_max=Max($item_max,$item_array[$i]);
   }
   $yy=$this->Y-$this->BORDER*2;
   //画柱形图
   for ($i=0;$i<$num;$i++){
    srand((double)microtime()*1000000);
    if($this->R!=255 && $this->G!=255 && $this->B!=255){
     $R=Rand($this->R,200);
     $G=Rand($this->G,200);
     $B=Rand($this->B,200);
    }else{
     $R=Rand(50,200);
     $G=Rand(50,200);
     $B=Rand(50,200);
    }
    $color=ImageColorAllocate($this->IMAGE,$R,$G,$B);
    //柱形长度
    $leight=($this->X-$this->BORDER*2)*($item_array[$i]/$item_max);
    $leight = $leight < $this->BORDER ? $this->BORDER : $leight;
    ImageFilledRectangle($this->IMAGE,$this->BORDER,$yy-$this->BORDER,$leight,$yy,$color);
    ImageString($this->IMAGE,$this->FONTSIZE,$leight+2,$yy-$this->BORDER,$item_array[$i],$this->FONTCOLOR);
    //用于间隔
    $yy=$yy-$this->BORDER*2;
   }
 }
 //--------------折线图
 function imageLine(){
   $item_array=Split($this->ARRAYSPLIT,$this->ITEMARRAY);
   $num=Count($item_array);
   $item_max=0;
   for ($i=0;$i<$num;$i++){
    $item_max=Max($item_max,$item_array[$i]);
   }
   $xx=$this->BORDER;
   //画柱形图
   for ($i=0;$i<$num;$i++){
    srand((double)microtime()*1000000);
    if($this->R!=255 && $this->G!=255 && $this->B!=255){
     $R=Rand($this->R,200);
     $G=Rand($this->G,200);
     $B=Rand($this->B,200);
    }else{
     $R=Rand(50,200);
     $G=Rand(50,200);
     $B=Rand(50,200);
    }
    $color=ImageColorAllocate($this->IMAGE,$R,$G,$B);
    //柱形高度
    $height_now=($this->Y-$this->BORDER)-($this->Y-$this->BORDER*2)*($item_array[$i]/$item_max);
    if($i!="0")
     ImageLine($this->IMAGE,$xx-$this->BORDER,$height_next,$xx,$height_now,$color);
    
    ImageString($this->IMAGE,$this->FONTSIZE,$xx+2,$height_now-$this->BORDER/2,$item_array[$i],$this->FONTCOLOR);
    $height_next=$height_now;
    //用于间隔
    $xx=$xx+$this->BORDER;
   }
 }
 //--------------饼状图
 function imageCircle(){
   $total = 0;
   $item_array=Split($this->ARRAYSPLIT,$this->ITEMARRAY);
   $num=Count($item_array);
   $item_max=0;
   for ($i=0;$i<$num;$i++){
    $item_max=Max($item_max,$item_array[$i]);
    $total += $item_array[$i];
   }
   $yy=$this->Y-$this->BORDER*2;
 
   //画饼状图的阴影部分
   $e=0;
   for ($i=0;$i<$num;$i++){
    srand((double)microtime()*1000000);
    if($this->R!=255 && $this->G!=255 && $this->B!=255){
     $R=Rand($this->R,200);
     $G=Rand($this->G,200);
     $B=Rand($this->B,200);
    }else{
     $R=Rand(50,200);
     $G=Rand(50,200);
     $B=Rand(50,200);
    }
    $s=$e;
    $leight=$item_array[$i]/$total*360;
    $e=$s+$leight;
    $color=ImageColorAllocate($this->IMAGE,$R,$G,$B);
    $colorarray[$i]=$color;
    //画圆 
    for ($j = 90; $j > 70; $j--) imagefilledarc($this->IMAGE, 110, $j, 200, 100, $s, $e, $color, IMG_ARC_PIE);
     //imagefilledarc($this->IMAGE, 110, 70, 200, 100, $s, $e, $color, IMG_ARC_PIE);
     //ImageFilledRectangle($this->IMAGE,$this->BORDER,$yy-$this->BORDER,$leight,$yy,$color);
     //ImageString($this->IMAGE,$this->FONTSIZE,$leight+2,$yy-$this->BORDER,$item_array[$i],$this->FONTCOLOR);
     //用于间隔
     $yy=$yy-$this->BORDER*2;
   }
 
   //画饼状图的表面部分
   $e=0;
   for ($i=0;$i<$num;$i++){
    srand((double)microtime()*1000000);
    if($this->R!=255 && $this->G!=255 && $this->B!=255){
     $R=Rand($this->R,200);
     $G=Rand($this->G,200);
     $B=Rand($this->B,200);
    }else{
     $R=Rand(50,200);
     $G=Rand(50,200);
     $B=Rand(50,200);
    }
    $s=$e;
    $leight=$item_array[$i]/$total*360;
    $e=$s+$leight;
    //$color=$colorarray[$i];
    $color=ImageColorAllocate($this->IMAGE,$R,$G,$B);
    //画圆 
    //for ($j = 90; $j > 70; $j--) imagefilledarc($this->IMAGE, 110, $j, 200, 100, $s, $e, $color, IMG_ARC_PIE);
    imagefilledarc($this->IMAGE, 110, 70, 200, 100, $s, $e, $color, IMG_ARC_PIE);
   }
 }
 //--------------完成打印图形
 function printAll(){
  ImagePNG($this->IMAGE);
  ImageDestroy($this->IMAGE);
 }
 //--------------调试
 function debug(){
  echo "X:".$this->X."<br/>Y:".$this->Y;
  echo "<br/>BORDER:".$this->BORDER;
  $item_array=split($this->ARRAYSPLIT,$this->ITEMARRAY);
  $num=Count($item_array);
  echo "<br/>数值个数:".$num."<br/>数值:";
  for ($i=0;$i<$num;$i++){
   echo "<br/>".$item_array[$i];
  }
 }
}
//$report->debug();//调式之用
/*
Header( "Content-type:image/png");
$report=new ImageReport;
$report->setImage(600,500,255,255,255,1);//参数(长,高,背影色R,G,B,是否透明1或0)
$temparray="0,260,400,124,48,720,122,440,475";//数值,用指定符号隔开
$report->setItem(',',$temparray,3,23);//参数(分隔数值的指定符号,数值变量,样式1为竖柱图2为横柱图3为折线图4为饼图,距离)
$report->setFont(1);//字体大小1-10
//$report->setX(1,1);//设置X轴刻度值(起始刻度值=1,刻度间隔值=1)
$report->PrintReport();
*/
?>

    
[2]php5类中三种数据类型的区别
    来源: 互联网  发布时间: 2013-12-24

一、php类中数据类型
public: 公有类型
在子类中可以通过self::var 来调用 public类型的方法或属性 可以通过parent::method 来调用父类中的方法
在实例中可以能过$obj->var 来调用 public类型的方法或属性

protected: 受保护类型
在子类中可以通过self::var 来调用 protected类型的方法或属性 可以通过parent::method 来调用父类中的方法
在实例中不能通过$obj->var 来调用  protected类型的方法或属性

private: 私有类型
该类型的属性或方法只能在该类中使用,在该类的实例、子类中、子类的实例中都不能调用私有类型的属性和方法

二、self 和 parent 的区别
a).在子类中常用到这两个对像。他们的主要区别在于self可以调用父类中的公有或受保护的属性,但parent不可以调用
b).self:: 它表示当前类的静态成员(方法和属性) 与 $this 不同,$this是指当前对像

附代码:
 

代码如下:

<?php
/**
 * parent 只能调用父类中的公有或受保护的方法,不能调用父类中的属性
 * self  可以调用父类中除私有类型的方法和属性外的所有数据
 */
class User{
    public $name;
    private $passwd;
    protected $email;   
    public  function __construct(){
        //print __CLASS__." ";
        $this->name= 'simple';
        $this->passwd='123456';
        $this->email = 'test123@163.com';
    }   
    public function show(){
        print "good ";
    }   
    public function inUserClassPublic() {
        print __CLASS__.'::'.__FUNCTION__." ";
    }   
    protected  function inUserClassProtected(){
        print __CLASS__.'::'.__FUNCTION__." ";
    }   
    private function inUserClassPrivate(){
        print __CLASS__.'::'.__FUNCTION__." ";
    }
}

class simpleUser extends User {   
    public function __construct(){       
        //print __CLASS__." ";
        parent::__construct();
    }
   
    public function show(){
        print $this->name."//public ";       
        print $this->passwd."//private ";
        print $this->email."//protected ";
    }
   
    public function inSimpleUserClassPublic() {
        print __CLASS__.'::'.__FUNCTION__." ";
    }
   
    protected function inSimpleUserClassProtected(){
        print __CLASS__.'::'.__FUNCTION__." ";
    }
   
    private function inSimpleUserClassPrivate() {
        print __CLASS__.'::'.__FUNCTION__." ";
    }
}

class adminUser extends simpleUser {
    protected $admin_user;
    public function __construct(){
        //print __CLASS__." ";
        parent::__construct();
    }
   
    public function inAdminUserClassPublic(){
        print __CLASS__.'::'.__FUNCTION__." ";
    }
   
    protected function inAdminUserClassProtected(){
        print __CLASS__.'::'.__FUNCTION__." ";
    }
   
    private function inAdminUserClassPrivate(){
        print __CLASS__.'::'.__FUNCTION__." ";
    }
}

class administrator extends adminUser {
    public function __construct(){       
        parent::__construct();
    }
}

/**
 * 在类的实例中 只有公有属性和方法才可以通过实例化来调用
 */
$s = new administrator();
print '-------------------';
$s->show();
?>


    
[3]php写的smtp邮件发送类
    来源: 互联网  发布时间: 2013-12-24

首先,给大家演示一下调用示例:
 

代码如下:
<?php
$smtpserver = "*****";
$smtpserverport = 25;
$smtpuser = "******";
$smtppass = "*******";
$smtp = new smtp($smtpserver, $smtpserverport, true, $smtpuser, $smtppass); //这里面的一个true是表示使用身份验证,否则不使用身份验证.
$smtp->debug = false;
//$emailtype = "HTML";
for ($i=0; $i<5; $i++) {
    $smtp->sendmail("*****", "******", "Hello world!","This is only a test!");
}
echo "共发送了 <b>$i</b> 封邮件!";
?>

下面是具体类的实现。
 

代码如下:

<?php
class smtp {
    /* Public Variables */
    var $smtp_port;
    var $time_out;
    var $host_name;
    var $log_file;
    var $relay_host;
    var $debug;
    var $auth;
    var $user;
    var $pass;
    /* Private Variables */
    var $sock;
    /* Constractor */
    function smtp($relay_host = "", $smtp_port = 25, $auth = false, $user, $pass)
    {
        $this->debug = false;
        $this->smtp_port = $smtp_port;
        $this->relay_host = $relay_host;
        $this->time_out = 30; //is used in fsockopen()
        $this->auth = $auth; //auth
        $this->user = $user;
        $this->pass = $pass;
        $this->host_name = "localhost"; //is used in HELO command
        $this->log_file = "";
        $this->sock = false;
    }
    /* Main Function */
    function sendmail($to, $from, $subject = "", $body = "", $mailtype= "", $cc = "", $bcc = "", $additional_headers = "")
    {
        $mail_from = $this->get_address($this->strip_comment($from));
        $body = ereg_replace("(^|( ))(.)", "1.3", $body);
        $header .= "MIME-Version:1.0 ";
        if ($mailtype == "HTML") {
            $header .= "Content-Type:text/html ";
        }
        $header .= "To: " . $to . " ";
        if ($cc != "") {
            $header .= "Cc: " . $cc . " ";
        }
        $header .= "From: $from<" . $from . ">; ";
        $header .= "Subject: " . $subject . " ";
        $header .= $additional_headers;
        $header .= "Date: " . date("r") . " ";
        $header .= "X-Mailer:By Redhat (PHP/" . phpversion() . ") ";
        list($msec, $sec) = explode()(" ", microtime());
        $header .= "Message-ID: <" . date("YmdHis", $sec) . "." . ($msec * 1000000) . "." . $mail_from . ">; ";
        $TO = explode(",", $this->strip_comment($to));
        if ($cc != "") {
            $TO = array_merge($TO, explode(",", $this->strip_comment($cc)));
        }
        if ($bcc != "") {
            $TO = array_merge($TO, explode(",", $this->strip_comment($bcc)));
        }
        $sent = true;
        foreach ($TO as $rcpt_to) {
            $rcpt_to = $this->get_address($rcpt_to);
            if (!$this->smtp_sockopen($rcpt_to)) {
                $this->log_write("Error: Cannot send email to " . $rcpt_to . " ");
                $sent = false;
                continue;
            }
            if ($this->smtp_send($this->host_name, $mail_from, $rcpt_to, $header, $body)) {
                $this->log_write("E-mail has been sent to <" . $rcpt_to . ">; ");
            } else {
                $this->log_write("Error: Cannot send email to <" . $rcpt_to . ">; ");
                $sent = false;
            }
            fclose($this->sock);
            $this->log_write("Disconnected from remote host ");
        }
        return $sent;
    }

    /* Private Functions */
    function smtp_send($helo, $from, $to, $header, $body = "")
    {
        if (!$this->smtp_putcmd("HELO", $helo)) {
            return $this->smtp_error("sending HELO command");
        }
        // auth
        if ($this->auth) {
            if (!$this->smtp_putcmd("AUTH LOGIN", base64_encode($this->user))) {
                return $this->smtp_error("sending HELO command");
            }
            if (!$this->smtp_putcmd("", base64_encode($this->pass))) {
                return $this->smtp_error("sending HELO command");
            }
        }
        if (!$this->smtp_putcmd("MAIL", "FROM:<" . $from . ">;")) {
            return $this->smtp_error("sending MAIL FROM command");
        }
        if (!$this->smtp_putcmd("RCPT", "TO:<" . $to . ">;")) {
            return $this->smtp_error("sending RCPT TO command");
        }
        if (!$this->smtp_putcmd("DATA")) {
            return $this->smtp_error("sending DATA command");
        }
        if (!$this->smtp_message($header, $body)) {
            return $this->smtp_error("sending message");
        }
        if (!$this->smtp_eom()) {
            return $this->smtp_error("sending <CR>;<LF>;.<CR>;<LF>; [EOM]");
        }
        if (!$this->smtp_putcmd("QUIT")) {
            return $this->smtp_error("sending QUIT command");
        }
        return true;
    }
    function smtp_sockopen($address)
    {
        if ($this->relay_host == "") {
            return $this->smtp_sockopen_mx($address);
        } else {
            return $this->smtp_sockopen_relay();
        }
    }
    function smtp_sockopen_relay()
    {
        $this->log_write("Trying to " . $this->relay_host . ":" . $this->smtp_port . " ");
        $this->sock = @fsockopen($this->relay_host, $this->smtp_port, $errno, $errstr, $this->time_out);
        if (!($this->sock && $this->smtp_ok())) {
            $this->log_write("Error: Cannot connenct to relay host " . $this->relay_host . " ");
            $this->log_write("Error: " . $errstr . " (" . $errno . ") ");
            return false;
        }
        $this->log_write("Connected to relay host " . $this->relay_host . " ");
        return true;;
    }
    function smtp_sockopen_mx($address)
    {
        $domain = ereg_replace("^.+@([^@]+)$", "1", $address);
        if (!@getmxrr($domain, $MXHOSTS)) {
            $this->log_write("Error: Cannot resolve MX "" . $domain . "" ");
            return false;
        }
        foreach ($MXHOSTS as $host) {
            $this->log_write("Trying to " . $host . ":" . $this->smtp_port . " ");
            $this->sock = @fsockopen($host, $this->smtp_port, $errno, $errstr, $this->time_out);
            if (!($this->sock && $this->smtp_ok())) {
                $this->log_write("Warning: Cannot connect to mx host " . $host . " ");
                $this->log_write("Error: " . $errstr . " (" . $errno . ") ");
                continue;
            }
            $this->log_write("Connected to mx host " . $host . " ");
            return true;
        }
        $this->log_write("Error: Cannot connect to any mx hosts (" . implode(", ", $MXHOSTS) . ") ");
        return false;
    }
    function smtp_message($header, $body)
    {
        fputs($this->sock, $header . " " . $body);
        $this->smtp_debug(">; " . str_replace()(" ", " " . ">; ", $header . " >; " . $body . " >; "));
        return true;
    }
    function smtp_eom()
    {
        fputs($this->sock, " . ");
        $this->smtp_debug(". [EOM] ");
        return $this->smtp_ok();
    }
    function smtp_ok()
    {
        $response = str_replace(" ", "", fgets($this->sock, 512));
        $this->smtp_debug($response . " ");
        if (!ereg("^[23]", $response)) {
            fputs($this->sock, "QUIT ");
            fgets($this->sock, 512);
            $this->log_write("Error: Remote host returned "" . $response . "" ");
            return false;
        }
        return true;
    }
    function smtp_putcmd($cmd, $arg = "")
    {
        if ($arg != "") {
            if ($cmd == "") $cmd = $arg;
            else $cmd = $cmd . " " . $arg;
        }
        fputs($this->sock, $cmd . " ");
        $this->smtp_debug(">; " . $cmd . " ");
        return $this->smtp_ok();
    }
    function smtp_error($string)
    {
        $this->log_write("Error: Error occurred while " . $string . ". ");
        return false;
    }
    function log_write($message)
    {
        $this->smtp_debug($message);
        if ($this->log_file == "") {
            return true;
        }
        $message = date("M d H:i:s ") . get_current_user() . "[" . getmypid() . "]: " . $message;
        if (!@file_exists($this->log_file) || !($fp = @fopen($this->log_file, "a"))) {
            $this->smtp_debug("Warning: Cannot open log file "" . $this->log_file . "" ");
            return false;;
        }
        flock($fp, LOCK_EX);
        fputs($fp, $message);
        fclose($fp);
        return true;
    }
    function strip_comment($address)
    {
        $comment = "([^()]*)";
        while (ereg($comment, $address)) {
            $address = ereg_replace($comment, "", $address);
        }
        return $address;
    }
    function get_address($address)
    {
        $address = ereg_replace("([ ])+", "", $address);
        $address = ereg_replace("^.*<(.+)>;.*$", "1", $address);
        return $address;
    }
    function smtp_debug($message)
    {
        if ($this->debug) {
            echo $message . ";";
        }
    }
}
?>

您可能感兴趣的文章:
php 邮件发送类(smtp方式或mail函数方式)
php使用smtp发送邮件的实现代码
php smtp发送邮件的函数
php中通过curl smtp发送邮件的例子
php使用Pear的NetMail发送smtp邮件
使用pear:Net_SMTP类发送邮件的例子
linux下php配置smtp发送邮件的方法


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php文件下载代码(多浏览器兼容、支持中文文... iis7站长之家
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,