webfiori / file
使用PHP读取、写入和查看文件的基本类库。
v1.3.6
2024-04-29 20:08 UTC
Requires
- php: >=7.0
- webfiori/jsonx: 3.3.x
Requires (Dev)
README
使用PHP读取、写入和查看文件的基本类库。
内容
支持的PHP版本
库的主要目标
库的主要目标是提供一个OOP抽象,简化PHP中文件的大部分常见操作。
用法
读取文件
$file = new File('path/to/my/file.txt'); $file->read(); $fileData = $file->getRawData(); // Do anything you like with data string.
此外,还可以通过向File::read()
方法提供范围来读取特定范围的字节。
$file = new File('path/to/my/file.txt'); //Read bytes 10-100 inclusive $file->read(10, 100); $fileData = $file->getRawData();
创建新文件
$file = new File('path/to/my/new/file.txt'); //The method File::create() is used to create new files $file->create(); $file->setRawData('Hello World'); $file->write();
追加到现有文件
$file = new File('path/to/my/old/file.txt'); $file->setRawData('Hello'); $file->write(); $file->setRawData(' World'); $file->write(); //Setting raw data before each call to the method File::write() will append to file.
覆盖文件
$file = new File('path/to/my/old/file.txt'); $file->setRawData('Hello'); $file->write(); $file->setRawData(' World'); $file->write(true); //By supplying true as parameter to the method File::write(), the old content of the file will be overridden.
文件的编码或解码
Base64编码和解码通常用于确保二进制数据能够从一个地方可靠地存储和传输到另一个地方。更多信息,请查看这里
解码
$file = new File('file.txt'); //'Hello World!' in base64 $encodedData = 'SGVsbG8gV29ybGQh'; $file->setRawData($encodedData, true); $decoded = $file->getRawData(); //$decoded is now the string 'Hello World!' //By supplying true as second parameter to the method File::setRawData(), the method will decode given data
$file = new File('file.txt'); $file->setRawData('Hello World'); $encoded = $file->getRawData(true); //$encoded is now the string 'SGVsbG8gV29ybGQh' //By supplying true as second parameter to the method File::getRawData(), the method will encode given data
读取和存储编码文件
使用以下方式使用File::writeEncoded()
方法写入base64编码的二进制文件。
$file = new File('my-img.png'); $file->writeEncoded(); //This will create new file with the name 'my-img.png.bin'
使用以下方式使用File::readDecoded()
方法读取base64编码的二进制文件。
$file = new File('some-binary-with-encoded.bin'); $file->readDecoded(); $decoded = $file->getRawData();
显示文件
使用File::view()
方法将文件内容发送到前端。它还支持content-range
头部,可以用来获取部分文件内容。
$file = new File('some-pdf.pdf'); $file->read(); $file->view();
要将下载对话框触发到网页浏览器中,请将true
作为参数传递给File::view()
方法。
$file = new File('some-pdf.pdf'); $file->read(); $file->view(true);
分块文件
通常,当大文件存储在数据库表中时,它会编码然后分成更小的块,每个块存储在一个记录中。该类提供了一个用于执行此过程的方法。
$file = new File('some-big-movie-file.mp4'); $file->read(); //The size of each chunk will be 1500 bytes and they will be base 64 encoded by default. $dataChunks = $file->getChunks(1500); foreach ($dataChunks as $chunk) { //...... }
将false
作为方法的第二个参数提供将禁用base64编码。