phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] api/db/adodb-csvlib.inc.php, 1.1.2.2


From: nomail
Subject: [Phpgroupware-cvs] api/db/adodb-csvlib.inc.php, 1.1.2.2
Date: Thu, 20 May 2004 15:32:33 -0000

Update of /api/db
Modified Files:
        Branch: proposal-branch
          adodb-csvlib.inc.php

date: 2004/04/16 20:59:49;  author: seek3r;  state: Exp;  lines: +41 -24

Log Message:
bringing savannah cvs back up to date with what we were doing on our private 
cvs server. We will not be doing dev from this cvs tree
=====================================================================
No syntax errors detected in -
=====================================================================
Index: api/db/adodb-csvlib.inc.php
diff -u api/db/adodb-csvlib.inc.php:1.1.2.1 api/db/adodb-csvlib.inc.php:1.1.2.2
--- api/db/adodb-csvlib.inc.php:1.1.2.1 Sat Feb 28 06:34:10 2004
+++ api/db/adodb-csvlib.inc.php Fri Apr 16 20:59:49 2004
@@ -3,7 +3,7 @@
 $ADODB_INCLUDED_CSV = 1;
 
 /* 
-  V4.20 22 Feb 2004  (c) 2000-2004 John Lim (address@hidden). All rights 
reserved.
+  V4.21 20 Mar 2004  (c) 2000-2004 John Lim (address@hidden). All rights 
reserved.
   Released under both BSD license and Lesser GPL library license. 
   Whenever there is any discrepancy between the two licenses, 
   the BSD license will take precedence. See License.txt. 
@@ -42,31 +42,30 @@
                        
                        $text = "====-1,0,$sql\n";
                        return $text;
-               } else {
-                       $tt = ($rs->timeCreated) ? $rs->timeCreated : time();
-                       $line = "====0,$tt,$sql\n";
-               }
-               // column definitions
-               for($i=0; $i < $max; $i++) {
-                       $o = $rs->FetchField($i);
-                       $line .= 
urlencode($o->name).':'.$rs->MetaType($o->type,$o->max_length,$o).":$o->max_length,";
                }
-               $text = substr($line,0,strlen($line)-1)."\n";
+               $tt = ($rs->timeCreated) ? $rs->timeCreated : time();
                
+               ## changed format from ====0 to ====1
+               $line = "====1,$tt,$sql\n";
                
-               // get data
                if ($rs->databaseType == 'array') {
-                       $text .= serialize($rs->_array);
+                       $rows =& $rs->_array;
                } else {
                        $rows = array();
                        while (!$rs->EOF) {     
                                $rows[] = $rs->fields;
                                $rs->MoveNext();
                        } 
-                       $text .= serialize($rows);
                }
-               $rs->MoveFirst();
-               return $text;
+               
+               for($i=0; $i < $max; $i++) {
+                       $o =& $rs->FetchField($i);
+                       $flds[] = $o;
+               }
+               
+               $rs =& new ADORecordSet_array();
+               $rs->InitArrayFields($rows,$flds);
+               return $line.serialize($rs);
        }
 
        
@@ -93,9 +92,9 @@
                $arr = array();
                $ttl = 0;
                
-               if ($meta = fgetcsv ($fp, 32000, ",")) {
+               if ($meta = fgetcsv($fp, 32000, ",")) {
                        // check if error message
-                       if (substr($meta[0],0,4) === '****') {
+                       if (strncmp($meta[0],'****',4) === 0) {
                                $err = trim(substr($meta[0],4,1024));
                                fclose($fp);
                                return false;
@@ -104,7 +103,7 @@
                        // $meta[0] is -1 means return an empty recordset
                        // $meta[1] contains a time 
        
-                       if (substr($meta[0],0,4) ===  '====') {
+                       if (strncmp($meta[0], '====',4) === 0) {
                        
                                if ($meta[0] == "====-1") {
                                        if (sizeof($meta) < 5) {
@@ -120,14 +119,14 @@
                                        }
                                        $rs->fields = array();
                                        $rs->timeCreated = $meta[1];
-                                       $rs = new ADORecordSet($val=true);
+                                       $rs =& new ADORecordSet($val=true);
                                        $rs->EOF = true;
                                        $rs->_numOfFields=0;
                                        $rs->sql = urldecode($meta[2]);
                                        $rs->affectedrows = (integer)$meta[3];
                                        $rs->insertid = $meta[4];       
                                        return $rs;
-                               }
+                               } 
                        # Under high volume loads, we want only 1 
thread/process to _write_file
                        # so that we don't have 50 processes queueing to write 
the same data.
                        # Would require probabilistic blocking write 
@@ -164,8 +163,26 @@
                                        }// (timeout>0)
                                        $ttl = $meta[1];
                                }
+                               
//================================================
+                               // new cache format - use serialize 
extensively...
+                               if ($meta[0] === '====1') {
+                                       // slurp in the data
+                                       $MAXSIZE = 128000;
+                                       
+                                       $text = fread($fp,$MAXSIZE);
+                                       if (strlen($text) === $MAXSIZE) {
+                                               while ($txt = 
fread($fp,$MAXSIZE)) {
+                                                       $text .= $txt;
+                                               }
+                                       }
+                                       fclose($fp);
+                                       @$rs = unserialize($text);
+                                       if (is_object($rs)) $rs->timeCreated = 
$ttl;
+                                       return $rs;
+                               }
+                               
                                $meta = false;
-                               $meta = fgetcsv($fp, 16000, ",");
+                               $meta = fgetcsv($fp, 32000, ",");
                                if (!$meta) {
                                        fclose($fp);
                                        $err = "Unexpected EOF 1";
@@ -182,7 +199,7 @@
                                        $flds = false;
                                        break;
                                }
-                               $fld = new ADOFieldObject();
+                               $fld =& new ADOFieldObject();
                                $fld->name = urldecode($o2[0]);
                                $fld->type = $o2[1];
                                $fld->max_length = $o2[2];
@@ -203,14 +220,14 @@
                }
                        
                fclose($fp);
-               $arr = @unserialize($text);
+               @$arr = unserialize($text);
                //var_dump($arr);
                if (!is_array($arr)) {
                        $err = "Recordset had unexpected EOF (in serialized 
recordset)";
                        if (get_magic_quotes_runtime()) $err .= ". Magic Quotes 
Runtime should be disabled!";
                        return false;
                }
-               $rs = new ADORecordSet_array();
+               $rs =& new ADORecordSet_array();
                $rs->timeCreated = $ttl;
                $rs->InitArrayFields($arr,$flds);
                return $rs;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]