php 开发的内容管理系统

源代码在线查看: streams.php

软件大小: 8901 K
上传用户: lvuxinwu
关键词: php 管理系统
下载地址: 免注册下载 普通下载 VIP

相关代码

								/*				   Copyright (c) 2003, 2005 Danilo Segan .								   This file is part of PHP-gettext.								   PHP-gettext is free software; you can redistribute it and/or modify				   it under the terms of the GNU General Public License as published by				   the Free Software Foundation; either version 2 of the License, or				   (at your option) any later version.								   PHP-gettext is distributed in the hope that it will be useful,				   but WITHOUT ANY WARRANTY; without even the implied warranty of				   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the				   GNU General Public License for more details.								   You should have received a copy of the GNU General Public License				   along with PHP-gettext; if not, write to the Free Software				   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA								*/												// Simple class to wrap file streams, string streams, etc.				// seek is essential, and it should be byte stream				class StreamReader {				  // should return a string [FIXME: perhaps return array of bytes?]				  function read($bytes) {				    return false;				  }				  				  // should return new position				  function seekto($position) {				    return false;				  }				  				  // returns current position				  function currentpos() {				    return false;				  }				  				  // returns length of entire stream (limit for seekto()s)				  function length() {				    return false;				  }				}								class StringReader {				  var $_pos;				  var $_str;								  function StringReader($str='') {				    $this->_str = $str;				    $this->_pos = 0;				  }								  function read($bytes) {				    $data = substr($this->_str, $this->_pos, $bytes);				    $this->_pos += $bytes;				    if (strlen($this->_str)_pos)				      $this->_pos = strlen($this->_str);								    return $data;				  }								  function seekto($pos) {				    $this->_pos = $pos;				    if (strlen($this->_str)_pos)				      $this->_pos = strlen($this->_str);				    return $this->_pos;				  }								  function currentpos() {				    return $this->_pos;				  }								  function length() {				    return strlen($this->_str);				  }								}												class FileReader {				  var $_pos;				  var $_fd;				  var $_length;								  function FileReader($filename) {				    if (file_exists($filename)) {								      $this->_length=filesize($filename);				      $this->_pos = 0;				      $this->_fd = fopen($filename,'rb');				      if (!$this->_fd) {					$this->error = 3; // Cannot read file, probably permissions					return false;				      }				    } else {				      $this->error = 2; // File doesn't exist				      return false;				    }				  }								  function read($bytes) {				    if ($bytes) {				      fseek($this->_fd, $this->_pos);								      // PHP 5.1.1 does not read more than 8192 bytes in one fread()				      // the discussions at PHP Bugs suggest it's the intended behaviour				      while ($bytes > 0) {				        $chunk  = fread($this->_fd, $bytes);				        $data  .= $chunk;				        $bytes -= strlen($chunk);				      }				      $this->_pos = ftell($this->_fd);				      				      return $data;				    } else return '';				  }								  function seekto($pos) {				    fseek($this->_fd, $pos);				    $this->_pos = ftell($this->_fd);				    return $this->_pos;				  }								  function currentpos() {				    return $this->_pos;				  }								  function length() {				    return $this->_length;				  }								  function close() {				    fclose($this->_fd);				  }								}								// Preloads entire file in memory first, then creates a StringReader 				// over it (it assumes knowledge of StringReader internals)				class CachedFileReader extends StringReader {				  function CachedFileReader($filename) {				    if (file_exists($filename)) {								      $length=filesize($filename);				      $fd = fopen($filename,'rb');								      if (!$fd) {					$this->error = 3; // Cannot read file, probably permissions					return false;				      }				      $this->_str = fread($fd, $length);				      fclose($fd);								    } else {				      $this->error = 2; // File doesn't exist				      return false;				    }				  }				}												?>			

相关资源