在项目中,碰到一个解析流的操作,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('流文件已经到末尾,读取错误',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))); } } ?>
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事
アサシンのクリードシャドウズ:シーシェルリドルソリューション
1 か月前ByDDD
Atomfallのクレーンコントロールキーカードを見つける場所
1 か月前ByDDD
Inzoi:学校と大学への応募方法
3週間前ByDDD

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

メモ帳++7.3.1
使いやすく無料のコードエディター

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ホットトピック
Gmailメールのログイン入り口はどこですか?
7793
15


Java チュートリアル
1644
14


CakePHP チュートリアル
1401
52


Laravel チュートリアル
1299
25


PHP チュートリアル
1234
29

