iliaa           Wed Aug 18 16:56:57 2004 EDT

  Modified files:              
    /livedocs   mk_notes.php 
  Log:
  Cleanup & Optimizations.
  
  
http://cvs.php.net/diff.php/livedocs/mk_notes.php?r1=1.3&r2=1.4&ty=u
Index: livedocs/mk_notes.php
diff -u livedocs/mk_notes.php:1.3 livedocs/mk_notes.php:1.4
--- livedocs/mk_notes.php:1.3   Sat Aug 14 17:34:05 2004
+++ livedocs/mk_notes.php       Wed Aug 18 16:56:57 2004
@@ -19,7 +19,7 @@
 // | livedocs.                                                            |
 // +----------------------------------------------------------------------+
 //
-// $Id: mk_notes.php,v 1.3 2004/08/14 21:34:05 iliaa Exp $
+// $Id: mk_notes.php,v 1.4 2004/08/18 20:56:57 iliaa Exp $
 
 $create = <<<SQL
 BEGIN;
@@ -33,13 +33,13 @@
 );
 CREATE INDEX notes_sect_idx on notes(sect);
 SQL;
-
 $dbname = $argv[1] . '/livedoc-notes.sqlite';
 $tmpdir = $argv[2];
 $mirror = $argv[3];
 
-if (file_exists($dbname))
+if (file_exists($dbname)) {
        unlink($dbname);
+}
 
 $DB = sqlite_open($dbname);
 sqlite_query($DB, 'PRAGMA default_synchronous=OFF');
@@ -48,37 +48,32 @@
 sqlite_query($DB, $create);
 
 $n_notes = 0;
-$n_data = 0;
+$buffer = '';
 
 $name = tempnam($tmpdir, 'notes');
 copy('http://'.$mirror.'.php.net/backend/notes/all.bz2', $name);
 $fp = fopen("compress.bzip2://".$name, 'r');
 
-do {
-       $line = fgets($fp);
-       $n_data += strlen($line);
-       if (!strlen($line))
-               break;
-       if (!strstr($line, '|')) {
-               echo "LINE: $line\n\n";
+while (($line = fgetcsv($fp, 100000, '|'))) {
+       if (!isset($line[5]) || isset($line[6])) {
+               echo "LINE: ".implode('|', $line)."\n\n";
                continue;
        }
-
-       list ($id, $sect, $rate, $ts, $user, $note) = explode('|', $line);
        ++$n_notes;
 
-       $note = sqlite_escape_string(base64_decode($note));
-       $user = sqlite_escape_string($user);
-
-       sqlite_query($DB, "INSERT INTO notes values ($id, '$sect', $rate, $ts, 
'$user', '$note');");
-
-} while (true);
+       if ($n_notes % 1000) {
+               $buffer .= "INSERT INTO notes values (".$line[0].", '".$line[1]."', 
".$line[2].", ".$line[3].", 
+                       '".sqlite_escape_string($line[4])."', 
'".sqlite_escape_string(base64_decode($line[5]))."');";
+       } else {
+               sqlite_query($DB, $buffer);
+               $buffer = '';
+       }
+}
 
-printf("\rDone: %d notes %d bytes\n", $n_notes, $n_data);
+printf("\rDone: %d notes %d bytes\n", $n_notes, ftell($fp));
 
-sqlite_query($DB, 'COMMIT;');
+sqlite_query($DB, 'COMMIT');
 
 fclose($fp);
 unlink($name);
-
 ?>

Reply via email to