当前位置: 编程技术>php
本页文章导读:
▪php数据库备份类 分享一个不错的php数据库备份类 本节主要内容:
一个php实现的数据库备份类。
php数据库备份类的调用示例。
该数据库备份类的基本功能:
1,备份指定数据表
2,打包成zip文件
3,发送到指定邮箱地址
调用示例:
.........
▪php登录函数代码 php实现简单登录函数的例子 本节内容:
学习php登录函数的实现方法。
一个简单的php登录函数,基本php+mysql+session的认证方式。
例子:
代码示例:
<?php
/**
* php登录函数
* edit: www.
*/
// 为php和mysql剔除不安全html代.........
▪php获取IE浏览器版本的函数 以下代码实现:
判断用户浏览器是不是IE6的php函数,如果是返回“真”,否则返回“假”。
代码:
代码示例:
<?php
/*
* 判断是否为IE6浏览器
* 编辑:www.
*/
function isIE6() {
$userAgent =.........
[1]php数据库备份类 分享一个不错的php数据库备份类
来源: 互联网 发布时间: 2013-12-24
本节主要内容:
一个php实现的数据库备份类。
php数据库备份类的调用示例。
php数据库备份类的调用示例。
该数据库备份类的基本功能:
1,备份指定数据表
2,打包成zip文件
3,发送到指定邮箱地址
2,打包成zip文件
3,发送到指定邮箱地址
调用示例:
代码示例:
<?php
error_reporting(0);//消灭万恶的php报警提示
//设定邮箱
$options = array('email' => array('email1', 'email2'),
'folder' => './backup/',
'mysql' => array('localhost', 'user', 'password', 'db'));
$b = new Backup($options);
// 提交备份命令
if(isset()($_POST['backup']))
{
// 开始备份
$b->backupDB();
}
// 显示备份表
$b->outputForm();
?>
error_reporting(0);//消灭万恶的php报警提示
//设定邮箱
$options = array('email' => array('email1', 'email2'),
'folder' => './backup/',
'mysql' => array('localhost', 'user', 'password', 'db'));
$b = new Backup($options);
// 提交备份命令
if(isset()($_POST['backup']))
{
// 开始备份
$b->backupDB();
}
// 显示备份表
$b->outputForm();
?>
php数据库备份类的实现代码:
代码示例:
<?php
/**
* 备份mysql数据库
* edit: www.
*/
class Backup
{
/**
* @var 用于保存配置参数
*/
var $config;
/**
* @var 用于保存mysql dump的数据
*/
var $dump;
/**
* @var 用于数据库结果数据以及insert指令
*/
var $struktur = array();
/**
* @var 压缩文件名zip
*/
var $datei;
/**
* 结构函数
* 连接数据库
* @return
*/
public function Backup($options)
{
// 从形参中读取配置
foreach($options AS $name => $value)
{
$this->config[$name] = $value;
}
// 连接数据库
mysql_connect()($this->config['mysql'][0], $this->config['mysql'][1],
$this->config['mysql'][2]) or die(mysql_error());
mysql_select_db($this->config['mysql'][3]) or die(mysql_error());
}
/**
* 执行备份数据库流程的函数
* @return
*/
public function backupDB()
{
// 开始备份的命令
if(isset($_POST['backup']))
{
// 检测是否选择了数据表
if(empty($_POST['table']))
{
die("请选择一个数据表。");
}
/** 开始备份 **/
$tables = array();
$insert = array();
$sql_statement = '';
// 锁定需要备份的数据库,防止读脏数据
foreach($_POST['table'] AS $table)
{
mysql_query()("LOCK TABLE $table WRITE");
// 获取数据库结构
$res = mysql_query('SHOW CREATE TABLE '.$table.'');
$createtable = mysql_result($res, 0, 1);
$str = "\n\n".$createtable."\n\n";
array_push($tables, $str);
// 查询数据表中的所有数据行
$sql = 'SELECT * FROM '.$table;
$query = mysql_query($sql) or die(mysql_error());
$feld_anzahl = mysql_num_fields($query);
$sql_statement = '--
-- Data Table `$table`
--
';
// 开始读数据,并将其转换为insert命令
while($ds = mysql_fetch_object($query)){
$sql_statement .= 'INSERT INTO `'.$table.'` (';
for ($i = 0;$i <$feld_anzahl;$i++){
if ($i ==$feld_anzahl-1){
$sql_statement .= mysql_field_name($query,$i);
} else {
$sql_statement .= mysql_field_name($query,$i).', ';
}
}
$sql_statement .= ') VALUES (';
for ($i = 0;$i <$feld_anzahl;$i++){
$name = mysql_field_name($query,$i);
if (empty($ds->$name)){
$ds->$name = 'NULL';
}
if ($i ==$feld_anzahl-1){
$sql_statement .= '"'.$ds->$name.'"';
} else {
$sql_statement .= '"'.$ds->$name.'", ';
}
}
$sql_statement .= ");\n";
}
// 将insert数据放在数组中,去重
if(!in_array($sql_statement, $insert))
{
array_push($insert, $sql_statement);
unset($sql_statement);
}
unset($sql_statement);
}
// 将数据库结构与insert命令放在一起啦
$this->struktur = array_combine($tables, $insert);
// 执行dump函数
$this->createDUMP($this->struktur);
// 生成zip压缩包
$this->createZIP();
/** 备份结束 **/
// 发一封邮件到指定邮箱,附件包含sql备份,如果你设置了的话^_^
if(isset($this->config['email']) && !empty($this->config['email']))
{
$this->sendEmail();
}
// output
echo '<h3 >备份完成啦</h3><a href="'.
$this->datei.'">下载备份</a>
<br />
<br />';
}
}
/**
* 发送邮件函数
* @return
*/
protected function sendEmail()
{
// 读取邮箱地址
foreach($this->config['email'] AS $email)
{
$to = $email;
$from = $this->config['email'][0];
$message_body = "本邮件中包含的zip压缩包为数据库备份";
$msep = strtoupper() (md5 (uniqid (time ())));
// 设置email头
$header =
"From: $from\r\n" .
"MIME-Version: 1.0\r\n" .
"Content-Type: multipart/mixed; boundary=".$msep."\r\n\r\n" .
"--$msep\r\n" .
"Content-Type: text/plain\r\n" .
"Content-Transfer-Encoding: 8bit\r\n\r\n" .
$message_body . "\r\n";
// 文件名
$dateiname = $this->datei;
// 压缩包大小
$dateigroesse = filesize ($dateiname);
// 读取压缩包
$f = fopen ($dateiname, "r");
// 保存到附件
$attached_file = fread ($f, $dateigroesse);
// 关闭压缩包
fclose ($f);
// 建立一个附件
$attachment = chunk_split() (base64_encode ($attached_file));
// 设置附件头
$header .=
"--" . $msep . "\r\n" .
"Content-Type: application/zip; name='Backup'\r\n" .
"Content-Transfer-Encoding: base64\r\n" .
"Content-Disposition: attachment; filename='Backup.zip'\r\n" .
"Content-Description: Mysql Datenbank Backup im Anhang\r\n\r\n" .
$attachment . "\r\n";
// 标记附件结束未知
$header .= "--$msep--";
// 邮件标题
$subject = "数据库备份";
// 发送邮件需要开启php相应支持哦^^
if(mail($to, $subject, '', $header) == FALSE)
{
die("无法发送邮件,请检查邮箱地址");
}
echo "<p><small>邮件发送成功</small></p>";
}
}
/**
* 建立数据库备份的压缩包并保存到服务器指定目录中
* @return
*/
protected function createZIP()
{
// 文件夹权限要够
chmod($this->config['folder'], 0777);
// 建立压缩包
$zip = new ZipArchive();
// 设置压缩包文件名
$this->datei = $this->config['folder'].$this->config['mysql'][3]."_"
.date("j_F_Y_g_i_a").".zip";
// 看看压缩包能不能打开
if ($zip->open($this->datei, ZIPARCHIVE::CREATE)!==TRUE) {
exit("无法打开 <".$this->datei.">\n");
}
// 把dump出来的数据放到压缩包里
$zip->addFromString("dump.sql", $this->dump);
// 关闭压缩包
$zip->close();
// 看看压缩包有没有生成
if(!file_exists($this->datei))
{
die("无法生成压缩包");
}
echo "<p><small>数据库备份压缩包成功生成</small></p>";
}
/**
* mysql dump函数
* @param object $dump
* @return
*/
protected function createDUMP($dump)
{
$date = date("F j, Y, g:i a");
$header = <<<HEADER
-- SQL Dump
--
-- Host: {$_SERVER['HTTP_HOST']}
-- Erstellungszeit: {$date}
--
-- Datenbank: `{$this->config['mysql'][3]}`
--
-- --------------------------------------------------------
HEADER;
foreach($dump AS $name => $value)
{
$sql .= $name.$value;
}
$this->dump = $header.$sql;
}
/**
* 生成选择数据表的界面函数
* @return
*/
public function outputForm()
{
// 选择全部
$result = mysql_list_tables($this->config['mysql'][3]);
$buffer = '
<fieldset>
<legend>选择需要备份的数据表</legend>
<form method="post" action="">
<select name="table[]" multiple="multiple" size="30">';
while($row = mysql_fetch_row($result))
{
$buffer .= '<option value="'.$row[0].'">'.$row[0].'</option>';
}
$buffer .= '</select>
<br /><br />
<input type="submit" name="backup" value="备份选定数据表" />
</form>
</fieldset>';
echo $buffer;
}
}
?>
/**
* 备份mysql数据库
* edit: www.
*/
class Backup
{
/**
* @var 用于保存配置参数
*/
var $config;
/**
* @var 用于保存mysql dump的数据
*/
var $dump;
/**
* @var 用于数据库结果数据以及insert指令
*/
var $struktur = array();
/**
* @var 压缩文件名zip
*/
var $datei;
/**
* 结构函数
* 连接数据库
* @return
*/
public function Backup($options)
{
// 从形参中读取配置
foreach($options AS $name => $value)
{
$this->config[$name] = $value;
}
// 连接数据库
mysql_connect()($this->config['mysql'][0], $this->config['mysql'][1],
$this->config['mysql'][2]) or die(mysql_error());
mysql_select_db($this->config['mysql'][3]) or die(mysql_error());
}
/**
* 执行备份数据库流程的函数
* @return
*/
public function backupDB()
{
// 开始备份的命令
if(isset($_POST['backup']))
{
// 检测是否选择了数据表
if(empty($_POST['table']))
{
die("请选择一个数据表。");
}
/** 开始备份 **/
$tables = array();
$insert = array();
$sql_statement = '';
// 锁定需要备份的数据库,防止读脏数据
foreach($_POST['table'] AS $table)
{
mysql_query()("LOCK TABLE $table WRITE");
// 获取数据库结构
$res = mysql_query('SHOW CREATE TABLE '.$table.'');
$createtable = mysql_result($res, 0, 1);
$str = "\n\n".$createtable."\n\n";
array_push($tables, $str);
// 查询数据表中的所有数据行
$sql = 'SELECT * FROM '.$table;
$query = mysql_query($sql) or die(mysql_error());
$feld_anzahl = mysql_num_fields($query);
$sql_statement = '--
-- Data Table `$table`
--
';
// 开始读数据,并将其转换为insert命令
while($ds = mysql_fetch_object($query)){
$sql_statement .= 'INSERT INTO `'.$table.'` (';
for ($i = 0;$i <$feld_anzahl;$i++){
if ($i ==$feld_anzahl-1){
$sql_statement .= mysql_field_name($query,$i);
} else {
$sql_statement .= mysql_field_name($query,$i).', ';
}
}
$sql_statement .= ') VALUES (';
for ($i = 0;$i <$feld_anzahl;$i++){
$name = mysql_field_name($query,$i);
if (empty($ds->$name)){
$ds->$name = 'NULL';
}
if ($i ==$feld_anzahl-1){
$sql_statement .= '"'.$ds->$name.'"';
} else {
$sql_statement .= '"'.$ds->$name.'", ';
}
}
$sql_statement .= ");\n";
}
// 将insert数据放在数组中,去重
if(!in_array($sql_statement, $insert))
{
array_push($insert, $sql_statement);
unset($sql_statement);
}
unset($sql_statement);
}
// 将数据库结构与insert命令放在一起啦
$this->struktur = array_combine($tables, $insert);
// 执行dump函数
$this->createDUMP($this->struktur);
// 生成zip压缩包
$this->createZIP();
/** 备份结束 **/
// 发一封邮件到指定邮箱,附件包含sql备份,如果你设置了的话^_^
if(isset($this->config['email']) && !empty($this->config['email']))
{
$this->sendEmail();
}
// output
echo '<h3 >备份完成啦</h3><a href="'.
$this->datei.'">下载备份</a>
<br />
<br />';
}
}
/**
* 发送邮件函数
* @return
*/
protected function sendEmail()
{
// 读取邮箱地址
foreach($this->config['email'] AS $email)
{
$to = $email;
$from = $this->config['email'][0];
$message_body = "本邮件中包含的zip压缩包为数据库备份";
$msep = strtoupper() (md5 (uniqid (time ())));
// 设置email头
$header =
"From: $from\r\n" .
"MIME-Version: 1.0\r\n" .
"Content-Type: multipart/mixed; boundary=".$msep."\r\n\r\n" .
"--$msep\r\n" .
"Content-Type: text/plain\r\n" .
"Content-Transfer-Encoding: 8bit\r\n\r\n" .
$message_body . "\r\n";
// 文件名
$dateiname = $this->datei;
// 压缩包大小
$dateigroesse = filesize ($dateiname);
// 读取压缩包
$f = fopen ($dateiname, "r");
// 保存到附件
$attached_file = fread ($f, $dateigroesse);
// 关闭压缩包
fclose ($f);
// 建立一个附件
$attachment = chunk_split() (base64_encode ($attached_file));
// 设置附件头
$header .=
"--" . $msep . "\r\n" .
"Content-Type: application/zip; name='Backup'\r\n" .
"Content-Transfer-Encoding: base64\r\n" .
"Content-Disposition: attachment; filename='Backup.zip'\r\n" .
"Content-Description: Mysql Datenbank Backup im Anhang\r\n\r\n" .
$attachment . "\r\n";
// 标记附件结束未知
$header .= "--$msep--";
// 邮件标题
$subject = "数据库备份";
// 发送邮件需要开启php相应支持哦^^
if(mail($to, $subject, '', $header) == FALSE)
{
die("无法发送邮件,请检查邮箱地址");
}
echo "<p><small>邮件发送成功</small></p>";
}
}
/**
* 建立数据库备份的压缩包并保存到服务器指定目录中
* @return
*/
protected function createZIP()
{
// 文件夹权限要够
chmod($this->config['folder'], 0777);
// 建立压缩包
$zip = new ZipArchive();
// 设置压缩包文件名
$this->datei = $this->config['folder'].$this->config['mysql'][3]."_"
.date("j_F_Y_g_i_a").".zip";
// 看看压缩包能不能打开
if ($zip->open($this->datei, ZIPARCHIVE::CREATE)!==TRUE) {
exit("无法打开 <".$this->datei.">\n");
}
// 把dump出来的数据放到压缩包里
$zip->addFromString("dump.sql", $this->dump);
// 关闭压缩包
$zip->close();
// 看看压缩包有没有生成
if(!file_exists($this->datei))
{
die("无法生成压缩包");
}
echo "<p><small>数据库备份压缩包成功生成</small></p>";
}
/**
* mysql dump函数
* @param object $dump
* @return
*/
protected function createDUMP($dump)
{
$date = date("F j, Y, g:i a");
$header = <<<HEADER
-- SQL Dump
--
-- Host: {$_SERVER['HTTP_HOST']}
-- Erstellungszeit: {$date}
--
-- Datenbank: `{$this->config['mysql'][3]}`
--
-- --------------------------------------------------------
HEADER;
foreach($dump AS $name => $value)
{
$sql .= $name.$value;
}
$this->dump = $header.$sql;
}
/**
* 生成选择数据表的界面函数
* @return
*/
public function outputForm()
{
// 选择全部
$result = mysql_list_tables($this->config['mysql'][3]);
$buffer = '
<fieldset>
<legend>选择需要备份的数据表</legend>
<form method="post" action="">
<select name="table[]" multiple="multiple" size="30">';
while($row = mysql_fetch_row($result))
{
$buffer .= '<option value="'.$row[0].'">'.$row[0].'</option>';
}
$buffer .= '</select>
<br /><br />
<input type="submit" name="backup" value="备份选定数据表" />
</form>
</fieldset>';
echo $buffer;
}
}
?>
您可能感兴趣的文章:
php备份、还原数据库的实例代码
php完整备份数据库与备份数据库中指定表的类
php Mysql数据库备份类及调用方法
php实现mysql的备份与还原实例代码
php实现MYSQL的备份与还原
php数据备份:单表备份 整表备份 导入数据库
[2]php登录函数代码 php实现简单登录函数的例子
来源: 互联网 发布时间: 2013-12-24
本节内容:
学习php登录函数的实现方法。
一个简单的php登录函数,基本php+mysql+session的认证方式。
例子:
代码示例:
<?php
/**
* php登录函数
* edit: www.
*/
// 为php和mysql剔除不安全html代码。
function safestrip($string){
$string = strip_tags()($string);
$string = mysql_real_escape_string($string);
return $string;
}
//登录信息显示函数
function messages() {
$message = '';
if($_SESSION['success'] != '') {
$message = '<span id="message">'
.$_SESSION['success'].'</span>';
$_SESSION['success'] = '';
}
if($_SESSION['error'] != '') {
$message = '<span id="message">'
.$_SESSION['error'].'</span>';
$_SESSION['error'] = '';
}
return $message;
}
// 用户登录函数
function login($username, $password){
//过滤用户输入的用户名和密码
$user = safestrip($username);
$pass = safestrip($password);
//将密码转换为md5格式
$pass = md5($pass);
// 查询数据库中用户名和密码是否匹配
$sql = mysql_query()("SELECT * FROM user_table WHERE username = '$user'
AND password = '$pass'")or die(mysql_error());
//如果=1则表示认证成功
if (mysql_num_rows($sql) == 1) {
//开始记录在session中
$_SESSION['authorized'] = true;
// 重新加载页面
$_SESSION['success'] = '登录成功';
header('Location: ./index.php');
exit;
} else {
// 登录失败记录在session中
$_SESSION['error'] = '非常抱歉,您输入的用户名或密码有误';
}
}
?>
/**
* php登录函数
* edit: www.
*/
// 为php和mysql剔除不安全html代码。
function safestrip($string){
$string = strip_tags()($string);
$string = mysql_real_escape_string($string);
return $string;
}
//登录信息显示函数
function messages() {
$message = '';
if($_SESSION['success'] != '') {
$message = '<span id="message">'
.$_SESSION['success'].'</span>';
$_SESSION['success'] = '';
}
if($_SESSION['error'] != '') {
$message = '<span id="message">'
.$_SESSION['error'].'</span>';
$_SESSION['error'] = '';
}
return $message;
}
// 用户登录函数
function login($username, $password){
//过滤用户输入的用户名和密码
$user = safestrip($username);
$pass = safestrip($password);
//将密码转换为md5格式
$pass = md5($pass);
// 查询数据库中用户名和密码是否匹配
$sql = mysql_query()("SELECT * FROM user_table WHERE username = '$user'
AND password = '$pass'")or die(mysql_error());
//如果=1则表示认证成功
if (mysql_num_rows($sql) == 1) {
//开始记录在session中
$_SESSION['authorized'] = true;
// 重新加载页面
$_SESSION['success'] = '登录成功';
header('Location: ./index.php');
exit;
} else {
// 登录失败记录在session中
$_SESSION['error'] = '非常抱歉,您输入的用户名或密码有误';
}
}
?>
[3]php获取IE浏览器版本的函数
来源: 互联网 发布时间: 2013-12-24
以下代码实现:
判断用户浏览器是不是IE6的php函数,如果是返回“真”,否则返回“假”。
代码:
代码示例:
<?php
/*
* 判断是否为IE6浏览器
* 编辑:www.
*/
function isIE6() {
$userAgent = strtolower()($_SERVER["HTTP_USER_AGENT"]);
//从HTTP_USER_AGENT字段中获取用户浏览器信息
if (ereg("msie 6", $userAgent) || ereg("msie 5", $userAgent)) {
return true;
}
return false;
}
/*
* 判断是否为IE6浏览器
* 编辑:www.
*/
function isIE6() {
$userAgent = strtolower()($_SERVER["HTTP_USER_AGENT"]);
//从HTTP_USER_AGENT字段中获取用户浏览器信息
if (ereg("msie 6", $userAgent) || ereg("msie 5", $userAgent)) {
return true;
}
return false;
}
最新技术文章: