📄 memory.php
字号:
<?php/** * Zend Framework * * LICENSE * * This source file is subject to the new BSD license that is bundled * with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://framework.zend.com/license/new-bsd * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@zend.com so we can send you a copy immediately. * * @category Zend * @package Zend_Search_Lucene * @subpackage Storage * @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License *//** Zend_Search_Lucene_Storage_File */require_once 'Zend/Search/Lucene/Storage/File.php';/** Zend_Search_Lucene_Exception */require_once 'Zend/Search/Lucene/Exception.php';/** * @category Zend * @package Zend_Search_Lucene * @subpackage Storage * @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */class Zend_Search_Lucene_Storage_File_Memory extends Zend_Search_Lucene_Storage_File{ /** * FileData * * @var string */ private $_data; /** * File Position * * @var integer */ private $_position = 0; /** * Object constractor * * @param string $data */ public function __construct($data) { $this->_data = $data; } /** * Reads $length number of bytes at the current position in the * file and advances the file pointer. * * @param integer $length * @return string */ protected function _fread($length = 1) { $returnValue = substr($this->_data, $this->_position, $length); $this->_position += $length; return $returnValue; } /** * Sets the file position indicator and advances the file pointer. * The new position, measured in bytes from the beginning of the file, * is obtained by adding offset to the position specified by whence, * whose values are defined as follows: * SEEK_SET - Set position equal to offset bytes. * SEEK_CUR - Set position to current location plus offset. * SEEK_END - Set position to end-of-file plus offset. (To move to * a position before the end-of-file, you need to pass a negative value * in offset.) * Upon success, returns 0; otherwise, returns -1 * * @param integer $offset * @param integer $whence * @return integer */ public function seek($offset, $whence=SEEK_SET) { switch ($whence) { case SEEK_SET: $this->_position = $offset; break; case SEEK_CUR: $this->_position += $offset; break; case SEEK_END: $this->_position = strlen($this->_data); $this->_position += $offset; break; default: break; } } /** * Get file position. * * @return integer */ public function tell() { return $this->_position; } /** * Flush output. * * Returns true on success or false on failure. * * @return boolean */ public function flush() { // Do nothing return true; } /** * Writes $length number of bytes (all, if $length===null) to the end * of the file. * * @param string $data * @param integer $length */ protected function _fwrite($data, $length=null) { // We do not need to check if file position points to the end of "file". // Only append operation is supported now if ($length !== null) { $this->_data .= substr($data, 0, $length); } else { $this->_data .= $data; } $this->_position = strlen($this->_data); } /** * Lock file * * Lock type may be a LOCK_SH (shared lock) or a LOCK_EX (exclusive lock) * * @param integer $lockType * @return boolean */ public function lock($lockType, $nonBlockinLock = false) { // Memory files can't be shared // do nothing return true; } /** * Unlock file */ public function unlock() { // Memory files can't be shared // do nothing } /** * Reads a byte from the current position in the file * and advances the file pointer. * * @return integer */ public function readByte() { return ord($this->_data[$this->_position++]); } /** * Writes a byte to the end of the file. * * @param integer $byte */ public function writeByte($byte) { // We do not need to check if file position points to the end of "file". // Only append operation is supported now $this->_data .= chr($byte); $this->_position = strlen($this->_data); return 1; } /** * Read num bytes from the current position in the file * and advances the file pointer. * * @param integer $num * @return string */ public function readBytes($num) { $returnValue = substr($this->_data, $this->_position, $num); $this->_position += $num; return $returnValue; } /** * Writes num bytes of data (all, if $num===null) to the end * of the string. * * @param string $data * @param integer $num */ public function writeBytes($data, $num=null) { // We do not need to check if file position points to the end of "file". // Only append operation is supported now if ($num !== null) { $this->_data .= substr($data, 0, $num); } else { $this->_data .= $data; } $this->_position = strlen($this->_data); } /** * Reads an integer from the current position in the file * and advances the file pointer. * * @return integer */ public function readInt() { $str = substr($this->_data, $this->_position, 4); $this->_position += 4; return ord($str{0}) << 24 | ord($str{1}) << 16 | ord($str{2}) << 8 | ord($str{3}); } /** * Writes an integer to the end of file. * * @param integer $value */ public function writeInt($value) { // We do not need to check if file position points to the end of "file". // Only append operation is supported now settype($value, 'integer');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -