source: sandbox/2.5.1-evolucao/phpgwapi/inc/adodb/rsfilter.inc.php @ 8222

Revision 8222, 1.5 KB checked in by angelo, 11 years ago (diff)

Ticket #3491 - Compatibilizar Expresso com novas versoes do PHP

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1<?php
2/**
3 * @version V4.93 10 Oct 2006 (c) 2000-2012 John Lim (jlim#natsoft.com). All rights reserved.
4 * Released under both BSD license and Lesser GPL library license.
5 * Whenever there is any discrepancy between the two licenses,
6 * the BSD license will take precedence.
7 *
8 * Set tabs to 4 for best viewing.
9 *
10 * Latest version is available at http://php.weblogs.com
11 *
12 * Requires PHP4.01pl2 or later because it uses include_once
13*/
14
15/*
16        Filter all fields and all rows in a recordset and returns the
17        processed recordset. We scroll to the beginning of the new recordset
18        after processing.
19       
20        We pass a recordset and function name to RSFilter($rs,'rowfunc');
21        and the function will be called multiple times, once
22        for each row in the recordset. The function will be passed
23        an array containing one row repeatedly.
24       
25        Example:
26       
27        // ucwords() every element in the recordset
28        function do_ucwords(&$arr,$rs)
29        {
30                foreach($arr as $k => $v) {
31                        $arr[$k] = ucwords($v);
32                }
33        }
34        $rs = RSFilter($rs,'do_ucwords');
35 */
36function RSFilter($rs,$fn)
37{
38        if ($rs->databaseType != 'array') {
39                if (!$rs->connection) return false;
40               
41                $rs = $rs->connection->_rs2rs($rs);
42        }
43        $rows = $rs->RecordCount();
44        for ($i=0; $i < $rows; $i++) {
45                if (is_array ($fn)) {
46                $obj = $fn[0];
47                $method = $fn[1];
48                $obj->$method ($rs->_array[$i],$rs);
49      } else {
50                        $fn($rs->_array[$i],$rs);
51      }
52         
53        }
54        if (!$rs->EOF) {
55                $rs->_currentRow = 0;
56                $rs->fields = $rs->_array[0];
57        }
58       
59        return $rs;
60}
61?>
Note: See TracBrowser for help on using the repository browser.