Fonctions et constantes communes dans les fichiers php
Constantes pour les opérations sur les fichiers
La constante suivante est la plus couramment utilisée. Est une constante qui est le délimiteur du répertoire de fichiers.
Regardons le format?:
平臺(tái) | 分割符 |
---|---|
windows | |
類unix | / |
Le format du chemin de Windows est d:xxxxxx Remarque?: Windows prend en charge d:/xxx/xxx
Le format du chemin de Linux est /home/xxx/xxx Remarque?: Si homexxxxxx est incorrect sous Linux
Alors quand Si vous activez l'échappement, etc., si les caractères d'échappement sont utilisés ensemble, d:xxxxxx sera le même. Lors du jugement, il y en a deux. S'il y en a, convertissez-les en un seul, puis remplacez / pour diviser le chemin, afin que les chemins sous Linux ou Windows puissent rester unifiés.
Nous utiliserons une constante?:
DIRECTORY_SEPARATOR
écrivons un petit exemple pour définir le chemin du fichier actuel?:
étant donné que FILE est une constante prédéfinie de PHP, il n'y a aucun moyen de la modifier. Si nécessaire, FILE peut également s'adapter au système d'exploitation.
Alors n'utilisez pas FILE. Vous pouvez utiliser des constantes personnalisées et traiter FILE comme suit?:
<?php $_current_file = str_replace(array('/', '\'), DIRECTORY_SEPARATOR, __FILE__); define('__CUR_FILE__', $_current_file); echo __CUR_FILE__; ?>
fonction d'opération du pointeur de fichier.
rewind (ressource handle)
Fonction?: Le pointeur revient au début
fseek (ressource handle , int offset [, int from_where])
Fonction?: déplacez le pointeur de fichier vers l'arrière du caractère spécifié
Dans la lecture précédente, nous avons constaté que fread lit les données de la longueur spécifiée. Lisez le contenu de la longueur spécifiée la prochaine fois que vous le lisez, commencez à partir de la position d'origine, puis lisez à rebours.
Comme le montre l'image ci-dessus, on peut imaginer :
1. Lors de la première ouverture du fichier, l'ic?ne rouge est lue
2 .La fausse couleur du fichier se lit de A à C
3. La prochaine fois que vous l'ouvrirez, vous pourrez commencer la lecture à partir de la flèche verte de C.
Nous écrivons un lot de fichiers dans le fichier demo.txt :
abcdeefghijklk
opqrst
uvwxyz
12345678
Nous pouvons commencer à expérimenter une fois.
<?php $fp = fopen('demo2.txt', 'r+'); //讀取10個(gè)字符 echo fread($fp,10); //指針設(shè)置回到開始處 rewind($fp); //再讀取10次看看輸出的是什么 echo '<br>'; echo fread($fp,10); echo '<br>'; //文件指針向后移動(dòng)10個(gè)字符 echo fseek($fp,10); echo '<br>'; //再看看文件中輸出的是什么 echo fread($fp,10); echo '<br>'; fclose($fp); ?>
Dans l'exemple ci-dessus, vous constaterez que fseek déplacera autant d'octets que la longueur spécifiée. Et le rembobinage revient à chaque fois au début du fichier.
Comment aller au bout ? Nous pouvons compter le nombre d'octets. Déplacez-vous directement vers l’arrière pendant la recherche.
Parlons des octets de statistiques sur la taille des fichiers.
filesize détecte la taille du fichier
<?php $filename = 'demo.txt'; echo $filename . '文件大小為: ' . filesize($filename) . ' bytes'; ?>
Autres fonctions pour exploiter les fichiers
En fait, il existe d'autres fonctions pour exploiter les fichiers, lire le fichier
函數(shù)名 | 功能 |
---|---|
file | 把整個(gè)文件讀入一個(gè)數(shù)組中 |
fgets | 從文件指針中讀取一行,讀到最后返回false |
fgetc | 從文件指針中讀取一個(gè)字符,讀到最后返回false |
ftruncate | 將文件截?cái)嗟浇o定的長(zhǎng)度 |
Nous utilisons un exemple pour utiliser toutes les fonctions ci-dessus.
Nous écrivons un lot de fichiers dans le fichier demo.txt :
abcdeefghijklk
opqrst
uvwxyz
12345678
<?php //以增加的r模式打開 $fp = fopen('demo.txt','r+'); //你分發(fā)現(xiàn)每次只讀一個(gè)字符 echo fgetc($fp); //我要全部讀取可以,讀取一次將結(jié)果賦值一次給$string while($string = fgetc($fp)){ echo $string; } ?>
fgets ouvre une ligne à la fois?:
<?php //以增加的r模式打開 $fp = fopen('demo.txt','r+'); //你分發(fā)現(xiàn)每次只讀一個(gè)字符 echo fgets($fp); echo fgets($fp); echo fgets($fp); echo fgets($fp); ?>
Avec le code ci-dessus, vous constaterez qu'à chaque fois qu'il est lu, il ouvre une ligne à la fois. Le retour final de lecture est faux.
Regardons ensuite la fonction d'interception de fichiers?:
<?php //打開我們上面的demo.txt文件 $file = fopen("demo.txt", "a+"); //你可以數(shù)數(shù)20個(gè)字有多長(zhǎng),看看是不是達(dá)到效果了 echo ftruncate($file,20); fclose($file); ?>
Dans l'exemple ci-dessus, nous avons constaté que le contenu peut être affiché tant qu'il est intercepté.
Fonction heure du fichier
函數(shù) | 功能說(shuō)明 |
---|---|
filectime | 文件創(chuàng)建時(shí)間 |
filemtime | 文件修改時(shí)間 |
fileatime | 文件上次訪問時(shí)間 |
<?php $filename = 'demo.txt'; if (file_exists($filename)) { echo '$filename文件的上次訪問時(shí)間是:' . date("Y-m-d H:i:s", fileatime($filename)); echo '$filename文件的創(chuàng)建時(shí)間是: ' . date("Y-m-d H:i:s", filectime($filename)); echo '$filename文件的修改時(shí)間是: ' . date("Y-m-d H:i:s", filemtime($filename));} ?>