찾다
php教程PHP源码PHP实现java中的DatainputStream类.

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

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

DataInputStream.php

<?php
/**
 * 流解析
 * ---------------------------------------------
 * @Author: Simon 夏向红 sanwkj@163.com
 * @Date: 2012-02-22
 * @package cn.com.nearme.gostore.theme
 * @name :DataInputStream.php
 * @version v1.0
 * 
*/
class DataInputStream {
    private $stream = null;
     
    /**
     * 构造函数
     *
     * @param stream of fopen .. $in
     */
    public function __construct( $in ){
        $this->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(&#39;流文件已经到末尾,读取错误&#39;,222);
                } else {
                    return $read;
                }
            } else {
                throw new Exception(&#39;流文件已经到末尾,读取错误&#39;,222);
            }
        } else {
            return &#39;&#39;;
        }
    }
     
    /**
     * 读取一个字节,并转换成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)));
    }
}
?>
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구