20,359
社区成员
发帖
与我相关
我的任务
分享
$sqlite_name="";
function UpdateIPDB()
{
$page=new pageTime();
global $ipDBPath,$sqlite_name,$ipTXTPath;
$sqlite_name=$ipDBPath;
if(!file_exists($ipDBPath)){
$sql="CREATE TABLE ip(id INTEGER PRIMARY KEY, sip TEXT, eip TEXT,city TEXT,addr TEXT)";
sqlite_exe($sql);
}
$sql="delete from ip";
sqlite_exe($sql);
$sql="BEGIN TRANSACTION";
sqlite_exe($sql);
$fhandle=fopen($ipTXTPath,"r");
echo "开始:".$page->get()."<br>";
while(!feof($fhandle))
{
$i++;
$arr=fgets($fhandle,4096);
while(strpos($arr," ")){$arr=str_replace(" "," ",$arr);} //处理空格,拆分字符串
ArrayToEncoding($arr,"UTF-8"); //转换编码
$record=explode(" ",$arr);
//if($i%1000==0) echo "从TXT中读取完毕:".$page->get().$arr;
$sql="INSERT INTO ip values(null,'$record[0]','$record[1]','$record[2]','$record[3]')";
sqlite_exe($sql);
$sql="delete from ip";
//sqlite_exe($sql);
if($i%1000==0)
{
//$sql="COMMIT TRANSACTION";
echo "插入sqlite完毕:".$page->get().$arr."<br>";
//$sql="BEGIN TRANSACTION";
//sqlite_exe($sql);
//print_r($record);
}
}
$sql="COMMIT TRANSACTION";
sqlite_exe($sql);
fclose($fhandle);
}
$sqlite_conn="";
function sqlite_exe($sql)
{
global $sqlite_name,$db_charset,$sqlite_conn;
if($sqlite_conn=="")
{
echo $sqlite_conn;
$sqlite_conn= sqlite_popen($sqlite_name) or die ("ERROR: Cannot open database");
//if($sqlite_charset==""){$sqlite_charset="utf8";sqlite_exe("SET NAMES $db_charset");}
}
$result = sqlite_query($sqlite_conn, $sql) or die("Error in query execution: " . sqlite_error_string(sqlite_last_error($sqlite_conn)));
return $result;
}