是一个优秀的语义个人发布平台

源代码在线查看: streams.php

软件大小: 234 K
上传用户: hslhsl123
关键词: 发布
下载地址: 免注册下载 普通下载 VIP

相关代码

								/*
				   Copyright (c) 2003 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) {
				    fseek($this->_fd, $this->_pos);
				    $data = fread($this->_fd, $bytes);
				    $this->_pos = ftell($this->_fd);
				
				    return $data;
				  }
				
				  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);
				  }
				
				}
				
				?>			

相关资源