Yii中使用PHPExcel导出Excel实例代码

 更新时间:2016年11月25日 16:36  点击:1412
文章来给大家介绍在yii框架中利用PHPExcel插件来快速实例导出excel数据的具体方法,有在使用yii的同学不防进入参考一下。

最近在研究PHP的Yii框架,很喜欢,碰到导出Excel的问题,研究了一下,就有了下面的方法:

 1、首先在cofig/main.php中添加对PHPExcel的引用,我的方式是这样:

 代码如下 复制代码
    // autoloading model and component classes
    'import'=>array(
        /*'application.modules.srbac.controllers.SBaseController',*/      
        'application.models.*',
        'application.components.*',
        'application.extensions.phpexcel.*',
 
    ),

 
2、当然要记得将PHPExcel整个目录复制到项目的 "protected/extensions/" 目录下面。

3、按照下面的代码修改PHPExcel代码目录里的Autoloader.php文件:

 代码如下 复制代码
public static function Register() {
/*if (function_exists('__autoload')) {
            //    Register any existing autoloader function with SPL, so we don't get any clashes
            spl_autoload_register('__autoload');
        }
        //    Register ourselves with SPL
        return spl_autoload_register(array('PHPExcel_Autoloader', 'Load'));*/
        $functions = spl_autoload_functions();
            foreach ( $functions as  $function)
                spl_autoload_unregister($function);
            $functions = array_merge(array(array('PHPExcel_Autoloader','Load')),$functions);
            foreach ( $functions as $function)
                $x = spl_autoload_register($function);
            return $x;
 
    }    //    function Register()

 
 
上面的函数中,注释掉的是原有的代码。

4、下面的代码是输出Excel,以及一些常用的属性设置,在你的Controller中:

 代码如下 复制代码

$objectPHPExcel = new PHPExcel();
$objectPHPExcel->setActiveSheetIndex(0);
 
ob_end_clean();
ob_start();
 
header('Content-Type : application/vnd.ms-excel');
header('Content-Disposition:attachment;filename="'.'xiaoqiang-'.date("Ymj").'.xls"');
$objWriter= PHPExcel_IOFactory::createWriter($objectPHPExcel,'Excel5');
$objWriter->save('php://output');

首先, mysqli 连接是永久连接,而mysql是非永久连接。什么意思呢? mysql连接每当第二次使用的时候,都会重新打开一个新的进程,而mysqli则只使用同一个进程,这样可以很大程度的减轻服务器端压力。

mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。

应用比较多的地方是 mysqli的事务。

比如下面的示例:

 代码如下 复制代码


$mysqli = new mysqli('localhost','root','','DB_Lib2Test');
$mysqli->autocommit(false);//开始事物
$mysqli->query($sql1);
$mysqli->query($sql2);
if(!$mysqli->errno){
  $mysqli->commit();
  echo 'ok';
}else{
 echo 'err';
  $mysqli->rollback();
}


在PHP中,mysqli 已经很好的封装了mysql事务的相关操作。如下示例:

 代码如下 复制代码

$sql1 = "update User set ScoreCount = ScoreCount +10 where ID= '123456'";
$sql2 = "update ScoreDetail  set FScore = 300 where ID= '123456'";
$sql3 = "insert into  ScoreDetail ID,Score) values ('123456',60)";

$mysqli = new mysqli('localhost','root','','DB_Lib2Test');
$mysqli->autocommit(false); // 开始事务
$mysqli->query($sql1);
$mysqli->query($sql2);
if (!$mysqli->errno) {
 $mysqli->commit();
 echo 'ok';
} else {
 echo 'err';
 $mysqli->rollback();
}

在这里,我们再使用 php mysql 系列函数执行事务。

 代码如下 复制代码

$sql1 = "update User set ScoreCount = ScoreCount +10 where ID= '123456'";
$sql2 = "update ScoreDetail  set FScore = 300 where ID= '123456'";
$sql3 = "insert into  ScoreDetail ID,Score) values ('123456',60)";

$conn = mysql_connect('localhost','root','');
mysql_select_db('DB_Lib2Test');
mysql_query('start transaction');
//mysql_query('SET autocommit=0');

mysql_query($sql1);
mysql_query($sql2);
if (mysql_errno()) {
 mysql_query('rollback');
 echo 'err';
} else {
 mysql_query('commit');
 echo 'ok';
}

// mysql_query('SET autocommit=1');
// mysql_query($sql3);


在这里要注意,

MyISAM:不支持事务,用于只读程序提高性能
InnoDB:支持ACID事务、行级锁、并发
Berkeley DB:支持事务
还有一点要注意:MySQL默认的行为是在每条SQL语句执行后执行一个COMMIT语句,从而有效的将每条语句独立为一个事务。

但往往,我们需要在使用事务的时候,是需要执行多条sql语句的。这就需要我们手动设置MySQL的autocommit属性为0,默认为1。

同时,使用START TRANSACTION语句显式的打开一个事务 。如上面的示例。

如果不这样做,会有什么结果呢?

我们将上面第二段代码中 //mysql_query(‘SET autocommit=0′); 和 // mysql_query($sql3); 注释去掉,然后执行。

此时,mysql_query($sql3) 执行就不会insert到数据库中。

如果我们将 // mysql_query(‘SET autocommit=1′); 本句注释去掉,那么mysql_query($sql3); 就会执行成功。

通常COMMIT或ROLLBACK语句执行时才完成一个事务,但是有些DDL语句等会隐式触发COMMIT。

比如下列语句

ALTER FUNCTION
ALTER PROCEDURE
ALTER TABLE
BEGIN
CREATE DATABASE
CREATE FUNCTION
CREATE INDEX
CREATE PROCEDURE
CREATE TABLE
DROP DATABASE
DROP FUNCTION
DROP INDEX
DROP PROCEDURE
DROP TABLE
UNLOCK TABLES
LOAD MASTER DATA
LOCK TABLES
RENAME TABLE
TRUNCATE TABLE
SET AUTOCOMMIT=1
START TRANSACTION

我们再来举个例子看下。

 代码如下 复制代码

$sql1 = 'create table ScoreDetail_new(id int)';
$sql2 = 'rename table ScoreDetail to ScoreDetail_bak';
$sql3  = 'rename table ScoreDetail_new to ScoreDetail';

$mysqli = new mysqli('localhost','root','','DB_Lib2Test');
$mysqli->autocommit(false);//开始事物
$mysqli->query($sql1);
$mysqli->query($sql2);
$mysqli->query($sql3);
if (!$mysqli->errno) {
 $mysqli->commit();
 echo 'ok';
} else {
 echo 'err';
 $mysqli->rollback();
}

上面的示例中,假如$sql2执行出错了,$sql1照样会执行的。为什么呢?

因为rename在执行的时候,mysql默认会先执行commit,再执行rename。

注意

MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型是不支持的!

***:一般MYSQL数据库默认的引擎是MyISAM,这种引擎不支持事务!如果要让MYSQL支持事务,可以自己手动修改:

方法如下:1.修改c:/appserv/mysql/my.ini文件,找到skip-InnoDB,在前面加上#,后保存文件。

2.在运行中输入:services.msc,重启mysql服务。

3.到phpmyadmin中,mysql->show engines;(或执行mysql->show variables like 'have_%'; ),查看InnoDB为YES,即表示数据库支持InnoDB了。
也就说明支持事务transaction了。

本文章来给各位同学介绍关于PHP中mysqli_affected_rows作用行数返回值,有需要了解的朋友可参考。

mysqli中关于update操作影响的行数可以有两种返回形式:

1. 返回匹配的行数

2. 返回影响的行数

默认情况下mysqli_affected_rows返回的值为影响的行数,如果我们需要返回匹配的行数,可以使用mysqli_real_connect函数进行数据库连接的初始化,并在函数的flag参数位加上:


MYSQLI_CLIENT_FOUND_ROWS return number of matched rows, not the number of affected rows


普通格式:
int mysqli_affected_rows ( mysqli link )
oop格式:
class mysqli {
int affected_rows
}
看下例子:
普通模式

 代码如下 复制代码

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
printf("Can't connect to localhost. Error: %sn", mysqli_connect_error());
exit();
}

/* Insert rows */
mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLanguage");
printf("Affected rows (INSERT): %dn", mysqli_affected_rows($link));

mysqli_query($link, "ALTER TABLE Language ADD Status int default 0″);

/* update rows */
mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50″);
printf("Affected rows (UPDATE): %dn", mysqli_affected_rows($link));

/* delete rows */
mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50″);
printf("Affected rows (DELETE): %dn", mysqli_affected_rows($link));

/* select all rows */
$result = mysqli_query($link, "SELECT CountryCode FROM Language");
printf("Affected rows (SELECT): %dn", mysqli_affected_rows($link));

mysqli_free_result($result);

/* Delete table Language */
mysqli_query($link, "DROP TABLE Language");

/* close connection */
mysqli_close($link);
?>


oop模式

 代码如下 复制代码

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %sn", mysqli_connect_error());
exit();
}

/* Insert rows */
$mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage");
printf("Affected rows (INSERT): %dn", $mysqli->affected_rows);

$mysqli->query("ALTER TABLE Language ADD Status int default 0″);

/* update rows */
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50″);
printf("Affected rows (UPDATE): %dn", $mysqli->affected_rows);

/* delete rows */
$mysqli->query("DELETE FROM Language WHERE Percentage < 50″);
printf("Affected rows (DELETE): %dn", $mysqli->affected_rows);

/* select all rows */
$result = $mysqli->query("SELECT CountryCode FROM Language");
printf("Affected rows (SELECT): %dn", $mysqli->affected_rows);

$result->close();

/* Delete table Language */
$mysqli->query("DROP TABLE Language");

/* close connection */
$mysqli->close();
?>

我们在网站开发时比较合理的做法就是我们的常用的一些程序做成函数或封闭成类,这样可以重复利用,可以节约开发成本了,下面我来给各位介绍了我常使用的类。

有面向对象技术基础的编程人员看一天就可以写起来了。而PHP在访问数据库的时候又经常会出现各种问题,如字符编码问题、SQL语法错误问题、PHP处理数据记录对象和返回对象的问题等。我这里写了一个数据库操作类,封装了数据库增删添改等操作,很方便使用。用这个类,可以加速网站的后台开发。

优点:

1.方便快捷, 数据库操作只需调用接口;
2.统一编码(utf8),不易导致乱码
3.结构清晰. 如处理前端请求的后台程序(test.php) + 表封装类(user.class.php) + 数据库封装类(db.class.php) + 配置信息(configuration.php)
以下例子有四个文件: configuration.php + db.class.php + user.class.php + test.php,放在同一个目录下。

首先是一个数据库配置的文件类configuration.php

 代码如下 复制代码


<?php
     /**
      * 数据库配置信息
      */
     define('DB_HOST','localhost');            //服务器
     define('DB_USER','root');                 //数据库用户名
     define('DB_PASSWORD','');                 //数据库密码
     define('DB_NAME','test0');                //默认数据库
     define('DB_CHARSET','utf8');              //数据库字符集
     define('TIMEZONE',"PRC");                 //时区设置

?>

接下来就是数据库操作类db.class.php

 代码如下 复制代码
<?php
    require_once("./configuration.php");   //引入配置常量文件
    date_default_timezone_set(TIMEZONE); 
 
 /**
  * 类名:DB
  * 说明:数据库操作类
  */
 class DB
 {
  public $host;            //服务器
  public $username;        //数据库用户名
  public $password;        //数据密码
  public $dbname;          //数据库名
  public $conn;            //数据库连接变量
  
  /**
   * DB类构造函数
   */
  public function DB($host=DB_HOST ,$username=DB_USER,$password=DB_PASSWORD,$dbname=DB_NAME)
  {
   $this->host = $host;
   $this->username = $username;
   $this->password = $password;
   $this->dbname = $dbname;
   
  }
  /**
   * 打开数据库连接
   */
  public function open()
  {
   $this->conn = mysql_connect($this->host,$this->username,$this->password);
   mysql_select_db($this->dbname);
   mysql_query("SET CHARACTER SET utf8");
  }
  /**
   * 关闭数据连接
   */
  public function close()
  {
   mysql_close($this->conn);
  }
  /**
   * 通过sql语句获取数据
   * @return: array()
   */
  public function getObjListBySql($sql)
  {
   $this->open();
   $rs = mysql_query($sql,$this->conn);
   $objList = array();
   while($obj = mysql_fetch_object($rs))
   {
    if($obj)
    {
     $objList[] = $obj;
    }
   }
   $this->close();
   return $objList;
  }
  
     /**
   * 向数据库表中插入数据
   * @param:$table,表名
   * @param:$columns,包含表中所有字段名的数组。默认空数组,则是全部有序字段名
   * @param:$values,包含对应所有字段的属性值的数组
   */
  public function insertData($table,$columns=array(),$values=array())
  {
   $sql = 'insert into '.$table .'( ';
   for($i = 0; $i < sizeof($columns);$i ++)
   {
    $sql .= $columns[$i];
    if($i < sizeof($columns) - 1)
    {
     $sql .= ',';
    }
   }
   $sql .= ') values ( ';
   for($i = 0; $i < sizeof($values);$i ++)
   {
    $sql .= "'".$values[$i]."'";
    if($i < sizeof($values) - 1)
    {
     $sql .= ',';
    }
   }
   $sql .= ' )';
   $this->open();
   mysql_query($sql,$this->conn);
   $id = mysql_insert_id($this->conn);
   $this->close();
   return $id;
  }
  
  /**
   * 通过表中的某一属性获取数据
   */
  public function getDataByAtr($tableName,$atrName,$atrValue){
   @$data = $this->getObjListBySql("SELECT * FROM ".$tableName." WHERE $atrName = '$atrValue'");
   if(count($data)!=0)return $data;
   return NULL; 
   }
  /**
   * 通过表中的"id",删除记录
   */
   public function delete($tableName,$atrName,$atrValue){
    $this->open();
    $deleteResult = false;
    if(mysql_query("DELETE FROM ".$tableName." WHERE $atrName = '$atrValue'")) $deleteResult = true;
    $this->close();
    if($deleteResult) return true;
    else return false;
    }
  /**
   * 更新表中的属性值
   */
   public function updateParamById($tableName,$atrName,$atrValue,$key,$value){
    $db = new DB();
    $db->open();
    if(mysql_query("UPDATE ".$tableName." SET $key = '$value' WHERE $atrName = '$atrValue' ")){  //$key不要单引号
     $db->close();
     return true;
    }
    else{
     $db->close();
     return false;
    }
   }
  /*
   * @description: 取得一个table的所有属性名
   * @param: $tbName 表名
   * @return:字符串数组
   */
  public function fieldName($tbName){
   $resultName=array();
   $i=0;
   $this->open();
   $result = mysql_query("SELECT * FROM $tbName");
   while ($property = mysql_fetch_field($result)){
    $resultName[$i++]=$property->name;
    }
   $this->close();
   return $resultName;
      }
 }
 ?>

接下来是测试了。我在phpmyadmin中建了一个test0数据库,里面建一张表user。然后用php写一个user类对应数据库中的user表。

user.class.php

 代码如下 复制代码

<?php

     require_once("./db.class.php");
 
  class User{
   public $name = NULL;
   public $password = NULL;
  
   /**
    * 构造函数
    */
   public function __construct($name,$password){
    $this->name = $name;
    $this->password = $password;
    }

   public function insert(){
    $db = new DB();
       $resultid = $db->insertData("user",array(),array('',$this->name,$this->password)); 
       return $resultid;
    }
  
   public static function getUserById($uid){
     $db = new DB();
     return $db->getDataByAtr("user",'uid',$uid);
     }
 
   public static function getUserByName($name){
     $db = new DB();
     @$data = $db->getObjListBySql("SELECT * FROM user WHERE name = '$name'");
     if(count($data)!=0)return $data;
     else return null;
     }

   public static function getAllUser(){
     $db = new DB();
      @$data = $db->getObjListBySql("SELECT * FROM user");
      if(count($data)!=0) return $data;
      else return null;
     }
    
   public static function deleteByUid($uid){
     $admin = Admin::getAdminById($uid);
     $db = new DB();
     if($db->delete("user","uid",$uid)) return true;
     else return false;
     }
   } 
  
?>

测试程序: test.php

 代码如下 复制代码

<?php
    header("Content-Type:text/html; charset=utf8");

 require_once("./user.class.php");

 $user = new User("HelloWorld","123456");
 $user->insert();

 $users = User::getAllUser();

 foreach ($users as $u) {
  echo "<br/>".$u->name."<br/>".$u->password."<br/>";
 }
?>

在php中要导入excel表格我们最简单的就是输入csv文件,还有一种办法就是使用PHPExcel插件来实现,常用的都是使用PHPExcel插件了,它有强大的功能,下面我们来看个实例。

很多网站都有导出数据为excel的功能,最开始想用js导出但是网上的文章几乎都一样而且浏览器兼容性还有问题,总之不太好用,那只好用php导出了服务器端处理不存在浏览器兼容的问题。

 

    上图是项目中要要导出的数据,前两行是thead,后面是tbody(里面的tr数量不定)。首先是获取数据发送到php端处理。


 

 代码如下 复制代码

require_once '../Classes/PHPExcel.php';
require_once '../Classes/PHPExcel/IOFactory.php';
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")->setLastModifiedBy("Maarten Balliauw")->setTitle("Office 2007 XLSX Test Document")->setSubject("Office 2007 XLSX Test Document")->setDescription("Document for Office 2007 XLSX, generated using PHP classes.")->setKeywords("office 2007 openxml php")->setCategory("Test result file");

$objPHPExcel->setActiveSheetIndex(0);
$objRichText = new PHPExcel_RichText();
$objRichText->createText('');
$objPayable = $objRichText->createTextRun('即时监测数据');
$objPayable->getFont()->setColor( new PHPExcel_Style_Color( PHPExcel_Style_Color::COLOR_RED ));
$objPayable->getFont()->setBold(true);
$objPayable->getFont()->setSize(24);
$objPHPExcel->getActiveSheet()->getCell('B1')->setValue($objRichText);
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true);  // 加粗
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setSize(24);   // 字体大小
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED); // 文本颜色
$objPHPExcel->getActiveSheet()->getStyle('A1:G1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objPHPExcel->getActiveSheet()->getStyle('A1:G1')->getFill()->getStartColor()->setARGB('00FFFFE3');//底纹

// 列宽
//$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(18);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(18);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(18);
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(20);

// 行高
for($i = 2; $i <= 17; $i++) {
 $objPHPExcel->getActiveSheet()->getRowDimension($i)->setRowHeight(22);
}

$objPHPExcel->getActiveSheet()->setCellValue('A2', '姓名');
$objPHPExcel->getActiveSheet()->setCellValue('A3', 'PHP');
$objPHPExcel->getActiveSheet()->setCellValue('A4', 'EXCEL');
$objPHPExcel->getActiveSheet()->setCellValue('A5', '');
$objPHPExcel->getActiveSheet()->setCellValue('A6', 'XXX');
$objPHPExcel->getActiveSheet()->setCellValue('A7', 'V');
$objPHPExcel->getActiveSheet()->setCellValue('A8', 'd');
$objPHPExcel->getActiveSheet()->setCellValue('A9', 'name');
$objPHPExcel->getActiveSheet()->setCellValue('A10', '描述');
for($i = 2; $i <= 16; $i++) {
 $objPHPExcel->getActiveSheet()->getStyle('A' . $i)->getFont()->setBold(true);  // 加粗
}

$objPHPExcel->getActiveSheet()->setCellValue('B2', '[姓名]');
$objPHPExcel->getActiveSheet()->setCellValue('B3', '导出带图片的EXCEL');
$objPHPExcel->getActiveSheet()->setCellValue('B4', 'XXXXX');

// 为excel加图片
//$objDrawing = new PHPExcel_Worksheet_Drawing();
//$objDrawing->setName('Photo');
//$objDrawing->setDescription('Photo');
//$objDrawing->setPath('../images/touxiang.jpg');
//$objDrawing->setHeight(170);
//$objDrawing->setWidth(120);
//$objDrawing->setCoordinates('G2');
//$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());

$objPHPExcel->getActiveSheet()->setCellValue('A17', '其它要求');
$objPHPExcel->getActiveSheet()->setCellValue('B17', '[其它要求]');

$objPHPExcel->getActiveSheet()->getStyle('A17')->getFont()->setBold(true);  // 加粗

$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle('即时监测数据');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

$objWriter->save('PHPExcel.xls');

[!--infotagslink--]

相关文章

  • 图解PHP使用Zend Guard 6.0加密方法教程

    有时为了网站安全和版权问题,会对自己写的php源码进行加密,在php加密技术上最常用的是zend公司的zend guard 加密软件,现在我们来图文讲解一下。 下面就简单说说如何...2016-11-25
  • ps怎么使用HSL面板

    ps软件是现在很多人都会使用到的,HSL面板在ps软件中又有着非常独特的作用。这次文章就给大家介绍下ps怎么使用HSL面板,还不知道使用方法的下面一起来看看。 &#8195;...2017-07-06
  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • Plesk控制面板新手使用手册总结

    许多的朋友对于Plesk控制面板应用不是非常的了解特别是英文版的Plesk控制面板,在这里小编整理了一些关于Plesk控制面板常用的使用方案整理,具体如下。 本文基于Linu...2016-10-10
  • 使用insertAfter()方法在现有元素后添加一个新元素

    复制代码 代码如下: //在现有元素后添加一个新元素 function insertAfter(newElement, targetElement){ var parent = targetElement.parentNode; if (parent.lastChild == targetElement){ parent.appendChild(newEl...2014-05-31
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • jQuery 1.9使用$.support替代$.browser的使用方法

    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 。 在更新的 2.0 版本中,将不再支持 IE 6/7/8。 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9。 如果要全面支持 IE,并混合...2014-05-31
  • 使用percona-toolkit操作MySQL的实用命令小结

    1.pt-archiver 功能介绍: 将mysql数据库中表的记录归档到另外一个表或者文件 用法介绍: pt-archiver [OPTION...] --source DSN --where WHERE 这个工具只是归档旧的数据,不会对线上数据的OLTP查询造成太大影响,你可以将...2015-11-24
  • 使用GruntJS构建Web程序之构建篇

    大概有如下步骤 新建项目Bejs 新建文件package.json 新建文件Gruntfile.js 命令行执行grunt任务 一、新建项目Bejs源码放在src下,该目录有两个js文件,selector.js和ajax.js。编译后代码放在dest,这个grunt会...2014-06-07
  • 如何使用php脚本给html中引用的js和css路径打上版本号

    在搜索引擎中搜索关键字.htaccess 缓存,你可以搜索到很多关于设置网站文件缓存的教程,通过设置可以将css、js等不太经常更新的文件缓存在浏览器端,这样访客每次访问你的网站的时候,浏览器就可以从浏览器的缓存中获取css、...2015-11-24
  • MySQL日志分析软件mysqlsla的安装和使用教程

    一、下载 mysqlsla [root@localhost tmp]# wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz--19:45:45-- http://hackmysql.com/scripts/mysqlsla-2.03.tar.gzResolving hackmysql.com... 64.13.232.157Conn...2015-11-24
  • C#注释的一些使用方法浅谈

    C#注释的一些使用方法浅谈,需要的朋友可以参考一下...2020-06-25
  • JS实现双击屏幕滚动效果代码

    本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08