从数据库中调用数据生成rar文件(自己的一个小实例)

来源:互联网 发布:python xpath模块 编辑:程序博客网 时间:2024/05/16 00:45

公司买了个火车头商用版软件,要把采集到的数据文件生成rar包。要求是rar压缩包名称为 id.rar 里面有一个要有一个id命名的文件,如44.rar 文件里面有三个子文件 分别是 config.ini   id.jpg/png/gif (根据数据库中的图片路径正则获取里面的图片文件)     id.nfo(一些指南,使用教程啥的)。于是折腾啊。代码贴出来供自己以后参考,还有完善 


脚本如下:

header("charset=utf8");
define('BASE_DIR', 'd:/testrar/rarfile/');//rar包存放路径
define('IMAGE_DIR', 'd:/testrar/imgfile/');//图片存放路径
define('BASE_EXEC', 'D:\\testrar\\rarfile\\');//exec执行后的rar包存放路径
define('WINRAR_DIR', 'D:\\app\\WinRAR\\Rar.exe');//winrar存放目录
creatrar();//执行主程序
function creatrar() {
    connect_sql();//连接数据库
    $sql = "SELECT * FROM test";
    $result = mysql_query($sql);
    $row_content = array();
    while($row = mysql_fetch_array($result)) {
        $row_content[] = $row;
    }
    foreach($row_content as $key=>$val) {
        $new_dir = BASE_DIR.$val['test_id'];
        $flash_image = get_image($val['test_id']);

        //创建目录
        mkdir_dir(BASE_DIR.$val['test_id']);

        //copy图片
        copy_file(IMAGE_DIR.$flash_image, $new_dir."/".$flash_image);

        //生成config.ini文件
        $content_ini = "[stuff]\nstuff_id=".$val['test_id']."\nstuff_ico=".$flash_image."\nstuff_folder=".$val['test_title']."\nstuff_exe=http://dl.99game.com/stuff/".$val['test_id']."/".$val['test_id'].".swf\nstuff_cate=flash\nstuff_name=".$val['test_title']."\n\n[other]";
        create_file($new_dir."/config.ini", $content_ini);

        //生成nfo文件
        $content_nfo = $val['test_content'];
        create_file($new_dir."/".$val['test_id'].".nfo", $content_nfo);
        exec("start ".WINRAR_DIR." a -m5 -ep ".BASE_EXEC.$val['test_id'].".rar ".BASE_EXEC.$val['test_id']."");//利用winrar工具生成rar包

        //删除文件和目录
        del_file(BASE_DIR.$val['test_id']."/config.ini");
        del_file(BASE_DIR.$val['test_id']."/".$val['test_id'].".nfo");
        del_file(BASE_DIR.$val['test_id']."/".$flash_image);
        del_dir(BASE_DIR.$val['test_id']);
    }
    close_sql();
}

//方法如下:
//创建目录
function mkdir_dir($dir_name) {
    mkdir($dir_name, 0777);
}
//copy图片
function copy_file($file_name, $target_name) {
    copy($file_name, $target_name);
}
//生成并且写入文件
function create_file($file_dir, $fwrite_content) {
    $fopen = fopen($file_dir, "w+");
    $fwrite = fwrite($fopen, $fwrite_content);
    fclose($fopen);
}
//删除文件
function del_file($file_name) {
    unlink($file_name);    
}
//删除目录
function del_dir($dir_name) {
    rmdir($dir_name);    
}
//获取图片名称
function get_image($flash_id) {
    $sql = "SELECT test_img FROM test WHERE test_id = '{$flash_id}'";
    $result = mysql_query($sql);
    $row = mysql_fetch_array($result);
    $flash_image = explode('/', $row['test_img']);   //路径格式:/upload_pic/2013/04/11/4399_13421932538.jpg
    $flash_image = end($flash_image);
    return $flash_image;
}
//数据库连接
function connect_sql() {
    $conn = mysql_connect('localhost', 'root', '123456') or die('数据连接错误');
    mysql_select_db('test', $conn);
    mysql_query("SET NAMES utf8");
}
//数据库关闭
function close_sql() {
    mysql_close();
}

?>

原创粉丝点击