search
HomeBackend DevelopmentPHP TutorialSummary of common methods for reading files in PHP

Summary of common methods for reading files in PHP

Jun 02, 2018 am 09:14 AM
phpSummarizemethod

This article mainly introduces a summary of common methods of reading files in PHP. Interested friends can refer to it. I hope it will be helpful to everyone.

1.fread

string fread ( int $handle , int $length )

fread() points from handle Read up to length bytes from the file. This function is called after reading up to length bytes, or when EOF is reached, or (for network streams) when a packet is available, or (after opening a user space stream) 8192 bytes have been read. Will stop reading the file, depending on which condition is encountered first.

fread() returns the string read, or FALSE if an error occurs.

<?php
  $filename = "/usr/local/something.txt";
  $handle = fopen($filename, "r");//读取二进制文件时,需要将第二个参数设置成&#39;rb&#39;
  
  //通过filesize获得文件大小,将整个文件一下子读到一个字符串中
  $contents = fread($handle, filesize ($filename));
  fclose($handle);
?>

If the file to be read is not a local ordinary file, but a remote file or stream file, this method cannot be used, because filesize cannot obtain the size of these files. At this time, you need to use the return value of feof() or fread() to determine whether the end of the file has been read.

For example:

<?php
  $handle = fopen(&#39;http://www.baidu.com&#39;, &#39;r&#39;);
  $content = &#39;&#39;;
  while(!feof($handle)){
    $content .= fread($handle, 8080);
  }
  echo $content;
  fclose($handle);
?>

or:

<?php
  $handle = fopen(&#39;http://www.baidu.com&#39;, &#39;r&#39;);
  $content = &#39;&#39;;
  while(false != ($a = fread($handle, 8080))){//返回false表示已经读取到文件末尾
    $content .= $a;
  }
  echo $content;
  fclose($handle);
?>

2.fgets

string fgets ( int $ handle [, int $length ] )

fgets() reads a line from the file pointed to by handle and returns a string with a length of at most length - 1 bytes. Stops when a newline character (included in the return value), EOF, or length - 1 bytes has been read (whichever occurs first). If length is not specified, it defaults to 1K, or 1024 bytes.

<?php
  $handle = fopen(&#39;./file.txt&#39;, &#39;r&#39;);
  while(!feof($handle)){
    echo fgets($handle, 1024);
  }
  fclose($handle);
?>

Note: The length parameter is optional as of PHP 4.2.0, if omitted, the length of the line is assumed to be 1024. Starting with PHP 4.3, omitting length will continue reading from the stream until the end of the line. If most of the lines in the file are larger than 8KB, specifying the maximum line length in the script is more efficient in utilizing resources. Starting with PHP 4.3 this function is safe for use with binary files. Earlier versions don't.

3.fgetss

string fgetss ( resource $handle [, int $length [, string $allowable_tags ]] )

Same function as fgets, but fgetss will try to remove any HTML and PHP tags from the read text. You can use the optional third parameter to specify which tags are not to be removed.

<?php
  $handle = fopen(&#39;./file.txt&#39;, &#39;r&#39;);
  while(!feof($handle)){
    echo fgetss($handle, 1024, &#39;<br>&#39;);
  }
  fclose($handle);
?>

4.file

##array file ( string $filename [, int $use_include_path [, resource $context ]] )

Read the file contents into an array. Each item in the array corresponds to a line in the file, including newlines. You can use the rtrim() function to filter out newline characters when line terminators are not required.

<?php
  $a = file(&#39;./file.txt&#39;);
  foreach($a as $line => $content){
    echo &#39;line &#39;.($line + 1).&#39;:&#39;.$content;
  }
?>

5.readfile##int readfile ( string $filename [, bool $use_include_path [, resource $context ]] )

Read a file and write it to the output buffer. Returns the number of bytes read from the file. Returns FALSE on error and displays an error message unless called as @readfile().

<?php
  $size = readfile(&#39;./file.txt&#39;);
  echo $size;
?>

6.file_get_contentsstring file_get_contents ( string $filename [, bool $use_include_path [, resource $context [, int $offset [ , int $maxlen ]]]] )

Read the file into a string. The third parameter $context can be used to set some parameters, such as setting timeout when accessing remote files, etc.

In addition, file_get_contents has much better performance than the above functions, so file_get_contents should be given priority. But readfile seems to have better performance than file_get_contents (?), because it does not need to call fopen.

<?php 
  $ctx = stream_context_create(array( 
    &#39;http&#39; => array( 
      &#39;timeout&#39; => 1  //设置超时
      ) 
    ) 
  ); 
  echo file_get_contents("http://www.baidu.com/", 0, $ctx); 
?>

7.fpassthruint fpassthru (resource $handle)

Change the given file pointer from the current The position is read to EOF and the result is written to the output buffer.

<?php 
  header("Content-Type:text/html;charset=utf-8"); 
  $handle = fopen(&#39;./test2.php&#39;, &#39;r&#39;);
  fseek($handle, 1024);//将指针定位到1024字节处
  fpassthru($handle);
?>

8.parse_ini_filearray parse_ini_file ( string $filename [, bool $process_sections ] )

parse_ini_file() Loads an ini file specified by filename and returns its settings as an associative array. If you set the final process_sections parameter to TRUE, you will get a multidimensional array containing the name and settings of each section in the configuration file. The default value for process_sections is FALSE.

Note: 1. If the value in the ini file contains any non-alphanumeric characters, it needs to be enclosed in double quotes (").

2. Some reserved words cannot be used as key names in ini files, including: null, yes, no, true and false. The values ​​​​are null, no and false are equivalent to "", the value Equivalent to "1" for yes and true. The characters {}|&~![()" also cannot be used anywhere in key names, and these characters have special meaning in option values.

test.ini file content:

; This is a sample configuration file
; Comments start with &#39;;&#39;, as in php.ini

[first_section]
one = 1
five = 5
animal = BIRD

[second_section]
path = "/usr/local/bin"
URL = "http://www.example.com/~username

test.php content:

<?php 
  $config = parse_ini_file(&#39;./test.ini&#39;, ture);
  print_r($config);
?>

Output content:

Array
(
  [first_section] => Array
    (
      [one] => 1
      [five] => 5
      [animal] => BIRD
    )

  [second_section] => Array
    (
      [path] => /usr/local/bin
      [URL] => http://www.example.com/~username
    )

)

A few notes Matters: 1. It is encouraged to use the b flag when processing binary files, even if the system does not require it, which makes the script more portable.

2. The allow_url_fopen option activates the URL form of the fopen encapsulation protocol so that URL objects such as files can be accessed. The default encapsulation protocol provides access to remote files using the ftp and http protocols. Some extension libraries such as zlib may register more encapsulation protocols. For security reasons, this option can only be set in php.ini.

3. If you want to open a URL with special characters (for example, spaces), you need to use urlencode() for URL encoding.

Summary: The above is the entire content of this article, I hope it will be helpful to everyone's study.

Related recommendations:

phpHow to judge whether the user is following the WeChat public account

Detailed explanation of PHP WeChat payment examples

Magic methods and magic constants in PHP

The above is the detailed content of Summary of common methods for reading files in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Explain the concept of session locking.Explain the concept of session locking.Apr 29, 2025 am 12:39 AM

Sessionlockingisatechniqueusedtoensureauser'ssessionremainsexclusivetooneuseratatime.Itiscrucialforpreventingdatacorruptionandsecuritybreachesinmulti-userapplications.Sessionlockingisimplementedusingserver-sidelockingmechanisms,suchasReentrantLockinJ

Are there any alternatives to PHP sessions?Are there any alternatives to PHP sessions?Apr 29, 2025 am 12:36 AM

Alternatives to PHP sessions include Cookies, Token-based Authentication, Database-based Sessions, and Redis/Memcached. 1.Cookies manage sessions by storing data on the client, which is simple but low in security. 2.Token-based Authentication uses tokens to verify users, which is highly secure but requires additional logic. 3.Database-basedSessions stores data in the database, which has good scalability but may affect performance. 4. Redis/Memcached uses distributed cache to improve performance and scalability, but requires additional matching

What is the full form of PHP?What is the full form of PHP?Apr 28, 2025 pm 04:58 PM

The article discusses PHP, detailing its full form, main uses in web development, comparison with Python and Java, and its ease of learning for beginners.

How does PHP handle form data?How does PHP handle form data?Apr 28, 2025 pm 04:57 PM

PHP handles form data using $\_POST and $\_GET superglobals, with security ensured through validation, sanitization, and secure database interactions.

What is the difference between PHP and ASP.NET?What is the difference between PHP and ASP.NET?Apr 28, 2025 pm 04:56 PM

The article compares PHP and ASP.NET, focusing on their suitability for large-scale web applications, performance differences, and security features. Both are viable for large projects, but PHP is open-source and platform-independent, while ASP.NET,

Is PHP a case-sensitive language?Is PHP a case-sensitive language?Apr 28, 2025 pm 04:55 PM

PHP's case sensitivity varies: functions are insensitive, while variables and classes are sensitive. Best practices include consistent naming and using case-insensitive functions for comparisons.

How do you redirect a page in PHP?How do you redirect a page in PHP?Apr 28, 2025 pm 04:54 PM

The article discusses various methods for page redirection in PHP, focusing on the header() function and addressing common issues like "headers already sent" errors.

Explain type hinting in PHPExplain type hinting in PHPApr 28, 2025 pm 04:52 PM

Article discusses type hinting in PHP, a feature for specifying expected data types in functions. Main issue is improving code quality and readability through type enforcement.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.