PHP头条
热点:

PHP实现java中的DatainputStream类.-PHP源码


在项目中,碰到一个解析流的操作,php里面没有现成的类.
那没办法,只能用二进制模式打开文件,再和java的datainputstream对比着打开文件,一个一个的实现流读取和解析.

废话不多说,代码贴出,其实很简单很简单.

DataInputStream.php

stream = $in;
    }
     
    /**
     * 析构函数
     *
     */
    public function __destruct(){
        @fclose( $this->stream );
    }
     
    /**
     * 读取字节
     *
     * @param int sizeof you want to read $len
     * @return string
     */
    private function read( $len=1 ){
        $len = intval( $len );
        if( $len>0 ) {
            if( !feof( $this->stream ) ) {
                $read = @fread($this->stream,$len);
                if( strlen($read)!=$len ){
                    throw new Exception('流文件已经到末尾,读取错误',222);
                } else {
                    return $read;
                }
            } else {
                throw new Exception('流文件已经到末尾,读取错误',222);
            }
        } else {
            return '';
        }
    }
     
    /**
     * 读取一个字节,并转换成int
     *
     * @return int
     */
    public function readByte(){
        return hexdec(bin2hex($this->read(1)));
    }
     
    /**
     * 短整形
     *
     * @return int
     */
    public function readShort(){
        return hexdec(bin2hex($this->read(2)));
    }
     
    /**
     * 整形数据
     *
     * @return int
     */
    public function readInt(){
        return hexdec(bin2hex($this->read(4)));
    }
     
    /**
     * 读取一个字符串
     *
     * @return string
     */
    public function readUTF(){
        $len = $this->readShort();
        return $this->read($len);
    }
     
    /**
     * 读取指定长度的数据,并作为字符串返回,图片等二进制文件,可能需要这样读取.
     *
     * @param int $len
     * @return unknown
     */
    public function readFully( $len ) {
        return $this->read( $len );
    }
     
    /**
     * readUTF的别名
     *
     * @return unknown
     */
    public function readString(){
        return $this->readUTF();
    }
     
    /**
     * 长整形.
     *
     * @return unknown
     */
    public function readLong(){
        return hexdec(bin2hex($this->read(8)));
    }
}
?>

www.phpzy.comtrue/php/34564.htmlTechArticlePHP实现java中的DatainputStream类.-PHP源码 在项目中,碰到一个解析流的操作,php里面没有现成的类. 那没办法,只能用二进制模式打开文件,再和java的datainputstream对比着打开文件,一个一个的实现...

相关文章

PHP之友评论

今天推荐