Common functions and constants in php files

Constants for file operations

The following constant is the most commonly used. Is a constant that is the delimiter of the file directory.

Let’s take a look at the format:

PlatformSeparator
windows\
unix-like/

The path format of windows is d:\xxx\xxx Note: windows supports d:/xxx/xxx
The path format of linux is /home/xxx/xxx Note: If \home\xxx\xxx is on linux It's wrong
So when you enable escaping and the like, the escape character \ is the same as d:\xxx\xxx if used together. When judging, if there are two \, convert it into one \ and replace the \ with / to split the path, so that the paths on Linux or Windows can remain unified.

We will use a constant:
DIRECTORY_SEPARATOR

Let’s write a small example to define the path of the current file:

Since FILE is a predefined constant of PHP, it cannot be changed. If necessary, FILE can also adapt to the operating system.
Then don’t use FILE, you can use custom constants and process FILE as follows:

<?php
$_current_file = str_replace(array('/', '\'), DIRECTORY_SEPARATOR, __FILE__);
define('__CUR_FILE__', $_current_file);

echo __CUR_FILE__;

?>

file Pointer operation function

rewind (resource handle)

Function: The pointer returns to the beginning

fseek ( resource handle, int offset [, int from_where])
Function: Move the file pointer backward by the specified character

In the previous reading, we found that fread reads data of the specified length. Read the content of the specified length. The next time you read it, start from the original position and then read backward.

document_2015-09-08_55eecf3c2a7e0.png

As shown in the picture above, we can imagine:

1. When the file is first opened, the red icon is read

2 .The false color of the file is read from A to C

3. The next time you open it, you can start reading from the green arrow of C.

We write a batch of files in the demo.txt file:

abcdeefghijklk
opqrst
uvwxyz
12345678

We can start experimenting once.

<?php
$fp = fopen('demo2.txt', 'r+');
//读取10个字符
echo fread($fp,10);

//指针设置回到开始处
rewind($fp);
//再读取10次看看输出的是什么
echo '<br>';
echo fread($fp,10);
echo '<br>';
//文件指针向后移动10个字符
echo fseek($fp,10);
echo '<br>';
//再看看文件中输出的是什么
echo fread($fp,10);
echo '<br>';
fclose($fp);
?>

In the above example, you will find that fseek will move as many bytes as the specified length. And rewind returns to the beginning of the file every time.

How to move to the end? We can count the number of bytes. Move directly to the back during fseek.

Let’s talk about filesize statistics bytes.

filesize Detect the size of the file

<?php


$filename = 'demo.txt';
echo $filename . '文件大小为: ' . filesize($filename) . ' bytes';

?>

Other functions for operating files

In fact, there are some other functions for operating files , read file

##fileRead the entire file Into an arrayfgetsRead a line from the file pointer, read to the end and return falsefgetcRead a character from the file pointer and return false after reading to the endftruncateTruncate the file to the given length
Function nameFunction
We use an example to use all the above functions.

We write a batch of files in the demo.txt file:

abcdeefghijklkopqrst
uvwxyz
12345678

<?php

//以增加的r模式打开
$fp = fopen('demo.txt','r+');

//你分发现每次只读一个字符
echo  fgetc($fp);

//我要全部读取可以,读取一次将结果赋值一次给$string
while($string = fgetc($fp)){

   echo $string;

}
?>

fgets opens one line at a time:

<?php

//以增加的r模式打开
$fp = fopen('demo.txt','r+');

//你分发现每次只读一个字符
echo  fgets($fp);
echo  fgets($fp);
echo  fgets($fp);
echo  fgets($fp);

?>

With the above code, you will find that one line is opened at a time each time it is read. The final read return is false.

Let’s look at the file interception function next:

<?php

//打开我们上面的demo.txt文件
$file = fopen("demo.txt", "a+");

//你可以数数20个字有多长,看看是不是达到效果了
echo ftruncate($file,20);
fclose($file);
?>

In the above example, we found that the content can be displayed as long as it is intercepted.

File time function

##Functionfilectimefilemtimefileatime
<?php

$filename = 'demo.txt';

if (file_exists($filename)) {
   echo '$filename文件的上次访问时间是:'  . date("Y-m-d H:i:s", fileatime($filename));
   echo '$filename文件的创建时间是: ' . date("Y-m-d H:i:s", filectime($filename));
    echo '$filename文件的修改时间是: ' . date("Y-m-d H:i:s", filemtime($filename));}
?>
Function description
File creation time
File modification time
File last access time

Continuing Learning
||
<?php $filename = 'demo.txt'; if (file_exists($filename)) { echo '$filename文件的上次访问时间是:' . date("Y-m-d H:i:s", fileatime($filename)); echo '$filename文件的创建时间是: ' . date("Y-m-d H:i:s", filectime($filename)); echo '$filename文件的修改时间是: ' . date("Y-m-d H:i:s", filemtime($filename)); } ?>
submitReset Code