X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/5aa86a9053fb0fa15846bb60aac2fb8fdfff524a..refs/tags/wordpress-4.4:/wp-includes/pomo/streams.php?ds=sidebyside diff --git a/wp-includes/pomo/streams.php b/wp-includes/pomo/streams.php index efaffa5a..5e37c9c4 100644 --- a/wp-includes/pomo/streams.php +++ b/wp-includes/pomo/streams.php @@ -3,22 +3,32 @@ * Classes, which help reading streams of data from files. * Based on the classes from Danilo Segan * - * @version $Id: streams.php 597 2011-01-16 20:14:36Z nbachiyski $ + * @version $Id: streams.php 1157 2015-11-20 04:30:11Z dd32 $ * @package pomo * @subpackage streams */ -if ( !class_exists( 'POMO_Reader' ) ): +if ( ! class_exists( 'POMO_Reader', false ) ): class POMO_Reader { - + var $endian = 'little'; var $_post = ''; - - function POMO_Reader() { + + /** + * PHP5 constructor. + */ + function __construct() { $this->is_overloaded = ((ini_get("mbstring.func_overload") & 2) != 0) && function_exists('mb_substr'); $this->_pos = 0; } - + + /** + * PHP4 constructor. + */ + public function POMO_Reader() { + self::__construct(); + } + /** * Sets the endianness of the file. * @@ -40,7 +50,7 @@ class POMO_Reader { return false; $endian_letter = ('big' == $this->endian)? 'N' : 'V'; $int = unpack($endian_letter, $bytes); - return array_shift($int); + return reset( $int ); } /** @@ -57,8 +67,13 @@ class POMO_Reader { $endian_letter = ('big' == $this->endian)? 'N' : 'V'; return unpack($endian_letter.$count, $bytes); } - - + + /** + * @param string $string + * @param int $start + * @param int $length + * @return string + */ function substr($string, $start, $length) { if ($this->is_overloaded) { return mb_substr($string, $start, $length, 'ascii'); @@ -66,7 +81,11 @@ class POMO_Reader { return substr($string, $start, $length); } } - + + /** + * @param string $string + * @return int + */ function strlen($string) { if ($this->is_overloaded) { return mb_strlen($string, 'ascii'); @@ -74,7 +93,12 @@ class POMO_Reader { return strlen($string); } } - + + /** + * @param string $string + * @param int $chunk_size + * @return array + */ function str_split($string, $chunk_size) { if (!function_exists('str_split')) { $length = $this->strlen($string); @@ -86,33 +110,59 @@ class POMO_Reader { return str_split( $string, $chunk_size ); } } - - + + /** + * @return int + */ function pos() { return $this->_pos; } + /** + * @return true + */ function is_resource() { return true; } - + + /** + * @return true + */ function close() { return true; } } endif; -if ( !class_exists( 'POMO_FileReader' ) ): +if ( ! class_exists( 'POMO_FileReader', false ) ): class POMO_FileReader extends POMO_Reader { - function POMO_FileReader($filename) { + + /** + * @param string $filename + */ + function __construct( $filename ) { parent::POMO_Reader(); $this->_f = fopen($filename, 'rb'); } - + + /** + * PHP4 constructor. + */ + public function POMO_FileReader( $filename ) { + self::__construct( $filename ); + } + + /** + * @param int $bytes + */ function read($bytes) { return fread($this->_f, $bytes); } - + + /** + * @param int $pos + * @return boolean + */ function seekto($pos) { if ( -1 == fseek($this->_f, $pos, SEEK_SET)) { return false; @@ -120,19 +170,31 @@ class POMO_FileReader extends POMO_Reader { $this->_pos = $pos; return true; } - + + /** + * @return bool + */ function is_resource() { return is_resource($this->_f); } - + + /** + * @return bool + */ function feof() { return feof($this->_f); } - + + /** + * @return bool + */ function close() { return fclose($this->_f); } - + + /** + * @return string + */ function read_all() { $all = ''; while ( !$this->feof() ) @@ -142,22 +204,35 @@ class POMO_FileReader extends POMO_Reader { } endif; -if ( !class_exists( 'POMO_StringReader' ) ): +if ( ! class_exists( 'POMO_StringReader', false ) ): /** * Provides file-like methods for manipulating a string instead * of a physical file. */ class POMO_StringReader extends POMO_Reader { - + var $_str = ''; - - function POMO_StringReader($str = '') { + + /** + * PHP5 constructor. + */ + function __construct( $str = '' ) { parent::POMO_Reader(); $this->_str = $str; $this->_pos = 0; } + /** + * PHP4 constructor. + */ + public function POMO_StringReader( $str = '' ) { + self::__construct( $str ); + } + /** + * @param string $bytes + * @return string + */ function read($bytes) { $data = $this->substr($this->_str, $this->_pos, $bytes); $this->_pos += $bytes; @@ -165,45 +240,76 @@ class POMO_StringReader extends POMO_Reader { return $data; } + /** + * @param int $pos + * @return int + */ function seekto($pos) { $this->_pos = $pos; if ($this->strlen($this->_str) < $this->_pos) $this->_pos = $this->strlen($this->_str); return $this->_pos; } + /** + * @return int + */ function length() { return $this->strlen($this->_str); } + /** + * @return string + */ function read_all() { return $this->substr($this->_str, $this->_pos, $this->strlen($this->_str)); } - + } endif; -if ( !class_exists( 'POMO_CachedFileReader' ) ): +if ( ! class_exists( 'POMO_CachedFileReader', false ) ): /** * Reads the contents of the file in the beginning. */ class POMO_CachedFileReader extends POMO_StringReader { - function POMO_CachedFileReader($filename) { + /** + * PHP5 constructor. + */ + function __construct( $filename ) { parent::POMO_StringReader(); $this->_str = file_get_contents($filename); if (false === $this->_str) return false; $this->_pos = 0; } + + /** + * PHP4 constructor. + */ + public function POMO_CachedFileReader( $filename ) { + self::__construct( $filename ); + } } endif; -if ( !class_exists( 'POMO_CachedIntFileReader' ) ): +if ( ! class_exists( 'POMO_CachedIntFileReader', false ) ): /** * Reads the contents of the file in the beginning. */ class POMO_CachedIntFileReader extends POMO_CachedFileReader { - function POMO_CachedIntFileReader($filename) { + /** + * PHP5 constructor. + */ + public function __construct( $filename ) { parent::POMO_CachedFileReader($filename); } + + /** + * PHP4 constructor. + */ + function POMO_CachedIntFileReader( $filename ) { + self::__construct( $filename ); + } } -endif; \ No newline at end of file +endif; +