function abook_global_file() {
global $address_book_global_filename;
$this->global_filename = $address_book_global_filename;
-
+
$this->sname = _("Global address book");
-
+
$this->open(true);
}
/* Open the addressbook file and store the file pointer.
- * Use $file as the file to open, or the class' own
- * filename property. If $param is empty and file is
+ * Use $file as the file to open, or the class' own
+ * filename property. If $param is empty and file is
* open, do nothing. */
function open($new = false) {
$this->error = '';
if($this->filehandle && !$new) {
return true;
}
-
+
/* Check that new file exists */
- if (! file_exists($this->global_filename) ||
+ if (! file_exists($this->global_filename) ||
! is_readable($this->global_filename)) {
return $this->set_error($this->global_filename . ': ' .
_("No such file or directory"));
}
-
+
/* Close old file, if any */
if ($this->filehandle) {
$this->close();
}
-
+
/* Open file, read only. */
$fh = @fopen($this->global_filename, 'r');
$this->writeable = false;
if(! $fh) {
- return $this->set_error($this->global_filename . ': ' .
+ return $this->set_error($this->global_filename . ': ' .
_("Open failed"));
}
-
+
$this->filehandle = &$fh;
return true;
}
}
/* ========================== Public ======================== */
-
+
/* Search the file */
function search($expr) {
if(is_array($expr)) {
return;
}
-
+
/* Make regexp from glob'ed expression
* May want to quote other special characters like (, ), -, [, ], etc. */
$expr = str_replace('?', '.', $expr);
$expr = str_replace('*', '.*', $expr);
-
+
$res = array();
if(!$this->open()) {
return false;
}
-
+
@rewind($this->filehandle);
-
+
while ($row = @fgetcsv($this->filehandle, 2048, '|')) {
$line = join(' ', $row);
if (eregi($expr, $line)) {
'source' => &$this->sname);
}
}
-
+
return $res;
}
-
+
/* Lookup alias */
function lookup($alias) {
if (empty($alias)) {
return array();
}
-
+
$alias = strtolower($alias);
-
+
$this->open();
@rewind($this->filehandle);
-
+
while ($row = @fgetcsv($this->filehandle, 2048, '|')) {
if (strtolower($row[0]) == $alias) {
return array('nickname' => $row[0],
'source' => &$this->sname);
}
}
-
+
return array();
}
$res = array();
$this->open();
@rewind($this->filehandle);
-
+
while ($row = @fgetcsv($this->filehandle, 2048, '|')) {
$res[] = array('nickname' => $row[0],
'name' => $row[1] . ' ' . $row[2],
$this->set_error(_("Can not modify global address book"));
return false;
}
-
+
} /* End of class abook_local_file */
-?>
+?>
\ No newline at end of file