easyswoole - 基于swoole扩展实现的一款高性能php框架

SplStream

資源流數據操作

相關class位置

  • SplStream
    • namespace: EasySwoole\Spl\SplStream

SplStream相關方法

方法名稱 參數 說明
__construct $resource = '',$mode = 'r+' 初始化資源和讀寫操作
__toString 輸出資源
close 關閉一個打開的文件指針
detach 獲取資源并重置資源對象
getSize 獲取資源大小 編碼轉換
tell 返回文件指針讀/寫的位置
eof 文件指針是否到了文件結束的位置
isSeekable 獲取是否可以在當前流中定位
seek $offset, $whence = SEEK_SET 在文件指針中定位
rewind 倒回文件指針的位置
isWritable 是否可寫
write $string 寫入內容
isReadable 是否可讀
read $length 讀取內容
length 獲取字符串長度
getContents 讀取資源流到一個字符串
getMetadata $key = null 從封裝協議文件指針中取得報頭/元數據
getStreamResource 獲取資源
truncate $size = 0 將文件截斷到給定的長度

基本使用

<?php
/**
 * Created by PhpStorm.
 * User: root
 * Date: 19-7-2
 * Time: 上午10:25
 */

require_once 'vendor/autoload.php';

//初始化資源和讀寫操作
$resource = fopen('./test.txt', 'ab+');
$stream = new \EasySwoole\Spl\SplStream($resource);
var_dump($stream->__toString());

/**
 * 輸出結果過:
 * string(10) "Easyswoole"
 */

//輸出資源
$stream = new \EasySwoole\Spl\SplStream('Easyswoole');
var_dump($stream->__toString());
/**
 * 輸出結果過:
 * string(10) "Easyswoole"
 */

//關閉一個打開的文件指針
$stream = new \EasySwoole\Spl\SplStream('Easyswoole');
$stream->close();
var_dump($stream->__toString());

/**
 * 輸出結果過:
 * string(0) ""
 */

//獲取資源并重置資源對象
$stream = new \EasySwoole\Spl\SplStream('Easyswoole');
$stream->detach();
var_dump($stream->__toString());

/**
 * 輸出結果過:
 * string(0) ""
 */

//獲取資源大小
$stream = new \EasySwoole\Spl\SplStream('Easyswoole');
$size = $stream->getSize();
var_dump($size);

/**
 * 輸出結果過:
 * int(10)
 */

//返回文件指針讀/寫的位置
$stream = new \EasySwoole\Spl\SplStream('Easyswoole');
$position = $stream->tell();
var_dump($position);

/**
 * 輸出結果過:
 * int(10)
 */

//文件指針是否到了文件結束的位置
$stream = new \EasySwoole\Spl\SplStream('Easyswoole');
$eof = $stream->eof();
var_dump($eof);
$stream->detach();
$eof = $stream->eof();
var_dump($eof);

/**
 * 輸出結果過:
 * bool(false)
 * bool(true)
 */

//獲取是否可以在當前流中定位
$stream = new \EasySwoole\Spl\SplStream('Easyswoole');
$seekable = $stream->isSeekable();
var_dump($seekable);

/**
 * 輸出結果過:
 * bool(true)
 */

//在文件指針中定位
$stream = new \EasySwoole\Spl\SplStream('Easyswoole');
$stream->seek(2);
$position = $stream->tell();
var_dump($position);

/**
 * 輸出結果過:
 * int(2)
 */

//倒回文件指針的位置
$stream = new \EasySwoole\Spl\SplStream('Easyswoole');
$stream->rewind();
$position = $stream->tell();
var_dump($position);

/**
 * 輸出結果過:
 * int(0)
 */

//是否可寫
$stream = new \EasySwoole\Spl\SplStream('Easyswoole');
$writeAble = $stream->isWritable();
var_dump($writeAble);

/**
 * 輸出結果過:
 * bool(true)
 */

//寫入內容
$stream = new \EasySwoole\Spl\SplStream('Easyswoole');
$stream->write(', 666');
var_dump($stream->__toString());

/**
 * 輸出結果過:
 * string(15) "Easyswoole, 666"
 */

//是否可讀
$stream = new \EasySwoole\Spl\SplStream('Easyswoole');
$readAble = $stream->isReadable();
var_dump($readAble);

/**
 * 輸出結果過:
 * bool(true)
 */

//讀取內容
$stream = new \EasySwoole\Spl\SplStream('Easyswoole');
$stream->rewind();
$string = $stream->read(4);
var_dump($string);

/**
 * 輸出結果過:
 * string(4) "Easy"
 */

//讀取資源流到一個字符串
$stream = new \EasySwoole\Spl\SplStream('Easyswoole');
$stream->rewind();
$string = $stream->getContents();
var_dump($string);

/**
 * 輸出結果過:
 * string(10) "Easyswoole"
 */

//從封裝協議文件指針中取得報頭/元數據
$stream = new \EasySwoole\Spl\SplStream('Easyswoole');
$meta = $stream->getMetadata();
var_dump($meta['stream_type']);

/**
 * 輸出結果過:
 * string(6) "MEMORY"
 */

//獲取資源
$stream = new \EasySwoole\Spl\SplStream('Easyswoole');
$resource = $stream->getStreamResource();
fseek($resource, 0, SEEK_SET);
var_dump(stream_get_contents($resource));

/**
 * 輸出結果過:
 * string(10) "Easyswoole"
 */

//將文件截斷到給定的長度
$stream = new \EasySwoole\Spl\SplStream('Easyswoole');
$stream->truncate(4);
var_dump($stream->__toString());

/**
 * 輸出結果過:
 * string(4) "Easy"
 */

ps: 資源和資源流是有區別的,這里說的資源也就是數據或是變量,資源流是一種文件流。

主站蜘蛛池模板: 江门高空车出租|高空作业设备出租|中特设备租赁有限公司 | 上海慧泰仪器制造有限公司 | 橡胶管_高压橡胶管_高压胶管_铠装高压胶管-河北远大新特橡塑有限公司 | 苏州氮气弹簧厂家_江浙沪氮气弹簧价格_江苏氮气弹簧规格_BelleFlex碟形弹簧_昆山三虑五金机械有限公司 | 深圳蓝枫印刷_画册印刷_彩页印刷_宣传册印刷_包装盒印刷_彩盒印刷厂_不干胶印刷厂 | 莫非传媒官网-江西知名的网络营销推广服务平台南昌网络公司,专业网络公关,品牌危机处理,网站SEO优化,微信朋友圈广告,网站建设,南昌莫非文化传媒有限公司 | 无轴螺旋输送机_双无轴螺旋输送机_垃圾,污泥无轴螺旋输送机-新乡市大汉振动机械有限公司 | 清河县隆鑫密封件有限公司,汽车用密封条,配电箱柜、集装箱密封胶条,建筑门窗、家具用密封条,无毒环保医用密封条,船舶、农机用密封条,异型产品 | 镗铣头-铣头-数控铣头-高密市振飞机械制造有限公司 | 内蒙古慧申设计顾问有限公司-官网 | 南通众诚数控机床有限公司-液压机,剪板机,折弯机,卷板机,液压冲床,路灯杆设备专业制造商 | 河北拉丝模具厂家,沧州拉丝模具-任丘市鹏宇模具有限公司 | 小字符喷码机,激光喷码机,喷码机厂家_山东闪创电子设备有限公司 小型生活污水处理设备_MBR膜生物反应器_口腔医院/脱脂污水处理设备_酸洗磷化/喷涂废水处理设备-上海台江环保 | 全自动灌装机械设备-迈驰粉末/颗粒/液体/膏体灌装机械设备流水线生产厂家 | 上海物流公司_上海冷链运输_空运_电商仓储配送电话-迈泽物流 | 廊坊微信营销,廊坊小程序开发,廊坊APP开发(安卓_苹果ios开发),微信朋友圈广告,百度推广,廊坊网络公司品牌服务商-河北盛秋网络科技有限公司 | 驾驶洗地机|手推洗地车|天津洗地机|扫地车|仓库工厂扫地机|工业吸尘器|扫雪机|耐洁思 | 气调包装机厂家-真空包装机价格-气调包装机-锁鲜包装机-江苏大江智能装备有限公司 | 数控落地镗铣床_数控刨台式镗铣床_数控龙门加工中心-青岛辉腾机械设备有限公司 | 曙海培训-仿真培训Linux培训html5培单片机培训PCB培训python培训PLC培训C语言培训android培训物联网培训无线电培训欧姆龙培训工业机器人培训5G培训Hadoop培训CFD培训项目外包开发咨询 | 南洋电线电缆|中压交联电缆|高压电力电缆-NAN南洋电缆 | 太原万通汽车学校[官网]-太原好的汽修培训学校,学新能源汽车技术,学汽修,学汽车检测与维修技术 | 厦门海为科技有限公司 - 工业物联网|国产PLC|HMI|SCADA | 注册会计师考试_CPA考试_注册会计师培训-北京注册会计师协会培训网 | 洗地机_扫地机_扫地车品牌_尘推车_工业吸尘器_山东鼎洁盛世 | 小型生活污水处理设备_MBR膜生物反应器_口腔医院/脱脂污水处理设备_酸洗磷化/喷涂废水处理设备-上海台江环保 | 远东齿轮泵|高粘度齿轮泵|三螺杆油泵|沥青保温泵|高粘度稠油泵-远东泵业官网 | 耐磨锤头|合金锤头|高铬耐磨锤头|破碎机锤头|双金属双液复合锤头_巩义东辰实业 合金耐磨锤头铸造厂 | 思源医疗器械网,雾化器厂家,医用床生产厂家,医疗器械厂家,医疗器械代加工 | 热熔钻孔机【优质厂家】_多年热熔钻设备研发制造经验 | 喷淋清洗剂,铝合金清洗剂-青岛爱大生环保科技有限公司 | 久久91精品久久91综合_国产亚洲自拍一区_国产精品第1页_亚洲高清视频一区_91成人午夜在线精品_亚洲国产精品网站在线播放_亚洲国产成人久久综合区_国产精品亚洲专区在线观看_免费视频精品一区二区三区 | 长沙思辰仪器科技有限公司| 新中式家具,广东新中式家具,广州新中式家具,佛山新中式家具,顺德新中式家具,乐从新中式家具,新中式家具厂家直销--唐明雅居 | 伸缩接头,限位伸缩接头,传力接头,可拆卸接头,橡胶接头,衬四氟橡胶接头,橡胶软连接,橡胶补偿器,防水套管- 巩义市隆盛管道设备有限公司 | 炸鸡汉堡设备厂家-开汉堡炸鸡店需要的设备全套-广州英迪尔电器有限公司 | 上海塑料链条生产厂家-塑料网带批发-柔性齿形链价格-上海瀚幽传动机械有限公司 | 小麦硬度指数仪-石灰活性测定仪-智能型砂强度仪-北京同德创业科技有限公司 | 轮转印刷机_商标印唛机_超声波切唛机_瑞安市明辉机械有限公司 | 济南牛皮癣专科研究院_「济南市银屑病医院」_济南治牛皮癣医保医院_济南正规的银屑病医院 | 耐火砖厂家价格-郑州荣盛窑炉耐火材料有限公司 |