mirror of
https://github.com/php/php-src.git
synced 2026-04-14 03:22:58 +02:00
This patch adds missing newlines, trims multiple redundant final newlines into a single one, and trims redundant leading newlines. According to POSIX, a line is a sequence of zero or more non-' <newline>' characters plus a terminating '<newline>' character. [1] Files should normally have at least one final newline character. C89 [2] and later standards [3] mention a final newline: "A source file that is not empty shall end in a new-line character, which shall not be immediately preceded by a backslash character." Although it is not mandatory for all files to have a final newline fixed, a more consistent and homogeneous approach brings less of commit differences issues and a better development experience in certain text editors and IDEs. [1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206 [2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2 [3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
97 lines
1.6 KiB
PHP
97 lines
1.6 KiB
PHP
<?php
|
|
|
|
/** @file dbareader.inc
|
|
* @ingroup Examples
|
|
* @brief class DbaReader
|
|
* @author Marcus Boerger
|
|
* @date 2003 - 2005
|
|
*
|
|
* SPL - Standard PHP Library
|
|
*/
|
|
|
|
/** @ingroup Examples
|
|
* @brief This implements a DBA Iterator.
|
|
* @author Marcus Boerger
|
|
* @version 1.0
|
|
*/
|
|
class DbaReader implements Iterator
|
|
{
|
|
|
|
protected $db = NULL;
|
|
private $key = false;
|
|
private $val = false;
|
|
|
|
/**
|
|
* Open database $file with $handler in read only mode.
|
|
*
|
|
* @param file Database file to open.
|
|
* @param handler Handler to use for database access.
|
|
*/
|
|
function __construct($file, $handler) {
|
|
if (!$this->db = dba_open($file, 'r', $handler)) {
|
|
throw new exception('Could not open file ' . $file);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Close database.
|
|
*/
|
|
function __destruct() {
|
|
dba_close($this->db);
|
|
}
|
|
|
|
/**
|
|
* Rewind to first element.
|
|
*/
|
|
function rewind() {
|
|
$this->key = dba_firstkey($this->db);
|
|
$this->fetch_data();
|
|
}
|
|
|
|
/**
|
|
* Move to next element.
|
|
*
|
|
* @return void
|
|
*/
|
|
function next() {
|
|
$this->key = dba_nextkey($this->db);
|
|
$this->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.
|
|
*/
|
|
function valid() {
|
|
if ($this->db && $this->key !== false) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @return Current key.
|
|
*/
|
|
function key() {
|
|
return $this->key;
|
|
}
|
|
}
|
|
|
|
?>
|