


Examples of file handles: locating the starting position of unseen reads and chunked reads of large files through handles
Examples of file handles: locating the starting position of unseen reads through handles and chunked reading of large files
In order to use the read file function , you need to use a path relative to the PHP script to point them to the file to read. However, most PHP file functions use a slightly different mechanism to access files. This mechanism is very similar to the mechanism of connecting to a database. The process Use the fopen() function to "connect" and the fclose function to "disconnect". The return value of the fopen function is a PHP file pointer, also known as a file handle. Once you have a file handle, you can use it to perform a variety of operations on the file, including deletion, append operations, etc. Then this handle is in use during use What issues need to be paid attention to?
Let’s first take a look at how files are opened and closed. The code is as follows:
<?php $f_fopen = fopen("../file.txt.","rb"); //打开文件 .... //对文件进行操作 fclose($f_fopen); //操作完成后关闭文件 ?>
When using fopen to connect files, you must specify the file path and file access mode (for example: r means only read mode). b mode means that the file will be opened in binary mode, which can be used to ensure code portability between different operations.
1. Locate the starting position of file reading through the handle
Already have it when opening a file through the fopen() function A file handle. The following uses this handle to read the file. The code is as follows:
<?php header("Content-Type:text/html; charset=utf-8"); $filename = "05.txt"; //要读取的文件 $fp = fopen($filename,"rb"); //打开文件 echo fread($fp,32); //使用fread()函数读取文件内容的前32个字节 echo "<p>"; echo fread($fp,filesize($filename)); //输出其余的文件内容 ?>
The result is as follows:
This example demonstrates how to use the file handle. Note that when using fread, the second parameter is one byte in units, indicating the amount of data to be read from the file. When the file content is read to the set amount of data, the handle will be located at this location. If you want To continue reading other contents in this file, you can read the total size of the file through the filesize function, and use this value as the second parameter of fread. At this time, the output will be the remaining contents of the file. This is the role of the handle. .
2. Block reading of large files
The previous solution is very effective for reading small files, but it is not suitable for reading large files. When the contents of the file are retrieved, the server's memory will be occupied, which may cause performance issues at times. In order to reduce the possibility of this problem, you can use the method of reading files in blocks and operating with blocks as objects, thus avoiding memory usage. The principle is to open the file through the fopen function and use the while statement to read in a loop Get the contents of the file and stop the loop when the file pointer reaches the end of the file. Otherwise, use the fgets function to read the data in the file and move the entire file handle forward. The specific code for reading the file in blocks is as follows:
<?php header("Content-Type:text/html; charset=utf-8"); $fopen = fopen("fun.php","rb"); while(!feof($fopen)){ //使用 feof()函数测试指针是否到了文件结束的位置 echo fgets($fopen); // 输出当前行 } fclose($fopen); ?>
There are also many functions that can read files using file handles. One of them is the fgetss function (note the two s), which is almost the same as fgets except that it can strip all HTML tag files it finds like the strip_tags function. The other is the fscanf function, which formats the output from a file like printf. There is also fgetcsv, which makes processing csv (comma separated values) files very easy.
But if you want to read the entire contents of a file into a variable, the file and file_get_content functions are easier to use, and they also potentially provide better performance.
So this is where we introduce how to use file handles. Friends should be able to master it easily!
The above is the detailed content of Examples of file handles: locating the starting position of unseen reads and chunked reads of large files through handles. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Laravel simplifies handling temporary session data using its intuitive flash methods. This is perfect for displaying brief messages, alerts, or notifications within your application. Data persists only for the subsequent request by default: $request-

The PHP Client URL (cURL) extension is a powerful tool for developers, enabling seamless interaction with remote servers and REST APIs. By leveraging libcurl, a well-respected multi-protocol file transfer library, PHP cURL facilitates efficient execution of various network protocols, including HTTP, HTTPS, and FTP. This extension offers granular control over HTTP requests, supports multiple concurrent operations, and provides built-in security features.

Laravel provides concise HTTP response simulation syntax, simplifying HTTP interaction testing. This approach significantly reduces code redundancy while making your test simulation more intuitive. The basic implementation provides a variety of response type shortcuts: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Do you want to provide real-time, instant solutions to your customers' most pressing problems? Live chat lets you have real-time conversations with customers and resolve their problems instantly. It allows you to provide faster service to your custom

Article discusses late static binding (LSB) in PHP, introduced in PHP 5.3, allowing runtime resolution of static method calls for more flexible inheritance.Main issue: LSB vs. traditional polymorphism; LSB's practical applications and potential perfo

PHP logging is essential for monitoring and debugging web applications, as well as capturing critical events, errors, and runtime behavior. It provides valuable insights into system performance, helps identify issues, and supports faster troubleshoot

Laravel simplifies HTTP verb handling in incoming requests, streamlining diverse operation management within your applications. The method() and isMethod() methods efficiently identify and validate request types. This feature is crucial for building

The Storage::download method of the Laravel framework provides a concise API for safely handling file downloads while managing abstractions of file storage. Here is an example of using Storage::download() in the example controller:
