takuya / php-stringio
为流对象(php://memory)提供StringIO
dev-master
2021-08-23 02:05 UTC
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-23 13:52:30 UTC
README
将字符串作为IO流对象。为了避免大字符串拆分成大数组。
无需多言,SplFileObject('php://memory','w+')是最佳选择,但过于复杂。
安装
composer requore takuya/php-stringio
用法
$sio = new StringIO("1234\n"); $sio->write("aaaa\n"); $sio->write("bbbb\n"); $sio->write("cccc\n"); $sio->rewind(); foreach ( $sio->lines() as $line) { var_dump($line); } $sio->close();
与SplFileObject相同
$sio = new \SplFileObject('php://memory','w+'); $sio->fwrite("1234\n"); $sio->fwrite("aaaa\n"); $sio->fwrite("bbbb\n"); $sio->fwrite("cccc\n"); foreach ( $sio as $line) { var_dump(trim($line)); } unset($sio);
SplFileObject有太多继承的方法。
与SplFileObject的不同之处
- trim() -- 不包含换行符(如"\r"或"\n")
- 方法较少 -- 没有继承的方法
- f-前缀 -- 没有 f-(fwrite/write)前缀
- yield -- lines()中的生成器
- close -- SplFileObject没有fclose()方法
方法
- StringIO#rewind
- StringIO#seek
- StringIO#tell
- StringIO#resource
- StringIO#close
- StringIO#closed
- StringIO#readline
- StringIO#gets
- StringIO#write
- StringIO#get_contents
- StringIO#eof
- StringIO#lines
- StringIO#get_meta_data
- StringIO#__toString