Browse Source

- Update examples

PHP-5.1
Marcus Boerger 22 years ago
parent
commit
171d01dfcf
  1. 8
      ext/spl/examples/autoload.inc
  2. 42
      ext/spl/examples/dbareader.inc

8
ext/spl/examples/autoload.inc

@ -33,7 +33,10 @@ function __load_class($classname, $dir)
*/
function __autoload($classname) {
$classname = strtolower($classname);
foreach(split(':', ini_get('include_path')) as $dir)
$inc = split(':', ini_get('include_path'));
$inc[] = '.';
$inc[] = dirname($_SERVER['PATH_TRANSLATED']);
foreach($inc as $dir)
{
if (__load_class($classname, $dir))
{
@ -41,10 +44,7 @@ function __autoload($classname) {
return;
}
}
if (!__load_class($classname, '.'))
if (!__load_class($classname, dirname($_SERVER['PATH_TRANSLATED'])))
fprintf(STDERR, 'Class not found ('.$classname.")\n");
return;
}
?>

42
ext/spl/examples/dbareader.inc

@ -28,32 +28,24 @@ class DbaReader implements Iterator
* @param handler Handler to use for database access.
*/
function __construct($file, $handler) {
$this->db = dba_open($file, 'r', $handler);
if (!$this->db = dba_open($file, 'r', $handler)) {
throw new exception('Could not open file ' . $file);
}
}
/**
* Close database.
*/
function __destruct() {
if ($this->db) {
dba_close($this->db);
}
dba_close($this->db);
}
/**
* Rewind to first element.
*/
function rewind() {
if ($this->db) {
$this->key = dba_firstkey($this->db);
}
}
/**
* @return Current data.
*/
function current() {
return $this->val;
$this->key = dba_firstkey($this->db);
fetch_data();
}
/**
@ -62,14 +54,26 @@ class DbaReader implements Iterator
* @return void
*/
function next() {
if ($this->db) {
$this->key = dba_nextkey($this->db);
if ($this->key !== false) {
$this->val = dba_fetch($this->key, $this->db);
}
$this->key = dba_nextkey($this->db);
fetch_data();
}
/**
* Fetches the current data if $key is valid
*/
private function fetch_data() {
if ($this->key !== false) {
$this->val = dba_fetch($this->key, $this->db);
}
}
/**
* @return Current data.
*/
function current() {
return $this->val;
}
/**
* @return Whether more elements are available.
*/

Loading…
Cancel
Save