Discuz的install文件核心函数

可以将自己写的程序做一个install.php.
Discuz的install文件中的核心函数,相当精简..

  1. <?php
  2. require("connect.inc.php");
  3. $sqlfile = 'test.sql';//sql文件
  4.  
  5. $fp = fopen($sqlfile, 'rb');
  6. $filesize=filesize($sqlfile);
  7. $sql = fread($fp, $filesize);
  8. fclose($fp);
  9. runquery($sql);
  10.  
  11. function runquery($sql) {
  12.     global $lang, $dbcharset, $tablepre, $db;
  13.  
  14.     $sql = str_replace("\r", "\n", str_replace(' cdb_', ' '.$tablepre, $sql));
  15.     $ret = array();
  16.     $num = 0;
  17.     foreach(explode(";\n", trim($sql)) as $query) {
  18.         $queries = explode("\n", trim($query));
  19.         foreach($queries as $query) {
  20.             $ret[$num] .= $query[0] == '#' || $query[0].$query[1] == '--' ? '' : $query;
  21.         }
  22.         $num++;
  23.     }
  24.     unset($sql);
  25.  
  26.     foreach($ret as $query) {
  27.         $query = trim($query);
  28.         if($query) {
  29.             if(substr($query, 0, 12) == 'CREATE TABLE') {
  30.                 $name = preg_replace("/CREATE TABLE ([a-z0-9_]+) .*/is", "\\1", $query);
  31.                 echo $lang['create_table'].' '.$name.' ... <font color="#0000EE">'.$lang['succeed'].'</font><br>';
  32.                 mysql_query(createtable($query, $dbcharset));
  33.             } else {
  34.                 mysql_query($query);
  35.             }
  36.         }
  37.     }
  38. }
  39. ?>

浏览最多的10篇日志

评论最多的10篇日志

随机显示的10篇日志