Maison >développement back-end >tutoriel php >Partage d'exemples d'opérations de base de fichiers PHP
Fonction d'écriture de fichier : file_put_contents()
FILE_USE_INCLUDE_PATH : vérifiera le chemin intégré pour la copie du nom de fichier
LOCK_EX : verrouillera le fichier
FILE_APPEND : se déplacera à la fin du fichier. Sinon, le contenu du fichier sera effacé
Syntaxe :
int file_put_contents(file,data,mode,context)
参数 | 描述 |
---|---|
file | 必需。规定要写入数据的文件。如果文件不存在,则创建一个新文件。 |
data | 可选。规定要写入文件的数据。可以是字符串、一维数组或数据流。 |
mode | 可选。如何打开/写入文件。可能值:FILE_USE_INCLUDE_PATH 、 FILE_APPEND 、 LOCK_EX |
context | 可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 null,则忽略。 |
Valeur de retour : la fonction renvoie le nombre d'octets de données écrits dans le fichier.
description du paramètre de mode
a la même fonction que d'appeler fopen(), fwrite() et fclose() dans l'ordre.
Fonction de lecture de fichier : file_get_contents()
Syntaxe :
string file_put_contents(path,include_path,context,start,max_length)
参数 | 描述 |
---|---|
path | 必需。规定要读取的文件。可以是外部url |
include_path | 可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 “1”。 |
context | 可选。规定文件句柄的环境。 |
start | 可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 新加的。 |
max_length | 可选。规定读取的字节数。该参数是 PHP 5.1 新加的。 |
Valeur de retour : la chaîne lue.
Dissocier() Supprimer le fichier
Renommer ( ) Déplacement de fichier (renommer)
Filesize() Taille du fichier
File_exists() Si le fichier existe
Filemtime() L'heure de dernière modification du fichier !
La plupart des lectures et écritures de fichiers sont effectuées à l'aide des fonctions : File_put_contents, file_get_contents.
Dans quelques cas particuliers, les deux fonctions ci-dessus ne sont pas faciles à utiliser.
Généralement, le fichier est trop volumineux ! Il ne peut être exploité que partie par partie !
Les unités de base sont des octets :
la fonction fopen() ouvre un fichier ou une URL.
Si l'ouverture échoue, cette fonction renvoie FALSE.
Ouvrir le descripteur de fichier, chemin de données entre le programme PHP et le fichier !
Nécessite deux paramètres : l'adresse du fichier et le mode d'ouverture !
Mode Ouvrir : Spécifiez les opérations à effectuer après l'ouverture du fichier ! Les modes suivants peuvent être sélectionnés :
r : lecture, mode lecture.
w : écriture, opération d'écriture, écriture claire.
a : ajouter, opération d'écriture, ajouter l'écriture.
x : Nouvelle écriture, vous ne pouvez créer que de nouveaux fichiers pour l'exploitation ! Il s'agit d'une opération d'écriture, similaire au w
+ mode étendu : les opérations étendues peuvent effectuer des opérations de lecture et d'écriture.
a033f09b1a547cc02045060a89d4ed93
Fonctions de lecture de gestion de fichiers fread(),fgetc(),fgets(),feof();
Données d'un octet = fgetc(handle); //caractères tronqués dans le cas de caractères multi-octets
Chaque fois qu'un octet est lu, avancez le pointeur de fichier d'un octet ! Dans les opérations de handle, cela dépend du pointeur de fichier !
String = fgets(handle, length)
Si un caractère de nouvelle ligne est lu en premier lors de la lecture, il se terminera également. Aussi appelée fonction de lecture de ligne ! Logique typique, chaque ligne enregistre un ensemble d'informations, cette fonction est la plus couramment utilisée !
feof() détermine si la fin du fichier est atteinte
Exemple de lecture de toutes les informations du fichier :
<?php $handle = fopen('./langref.txt','r'); while (! feof($handle)) { $line = fgets($handle,1024); echo $line . "</br>"; } ?>
String = fread( handle, length)
Lire le contenu en fonction de la longueur, qui est différente des fgets et n'est pas limité par les nouvelles lignes
La seule limitation est : la longueur maximale ne peut pas dépasser 8192 !
Fonction d'écriture de descripteur de fichier fwrite($handle, content)
Fermer le handle fclose($handle)
Fonction de fonctionnement du pointeur
fseek (poignée, position), pointeur de réglage de positionnement, la position commence à 0 et augmente !
ftell(poignée), obtenez la position du pointeur !
Par défaut, la fonction d'opération de fichier de PHP n'est pas dans un état bloquant. État de fonctionnement gratuit. Par conséquent, il est facile de provoquer des erreurs lors de l'utilisation simultanée de fichiers. Lorsqu'une opération de script doit bloquer d'autres opérations de script, des verrous de fichiers doivent être utilisés.
Processus d'opération de verrouillage :
Ajoutez d'abord le verrou, vérifiez si le verrou est ajouté avec succès et réutilisez-le s'il réussit !
Type de verrouillage :
Verrouillage en lecture : verrouillage partagé s-lock (share-lock), le verrou supplémentaire attendu avant l'opération de lecture. Par conséquent, les lectures simultanées sont autorisées et les opérations d'écriture supplémentaires sont bloquées.
Verrouillage en écriture : verrouillage exclusif x-lock (verrouillage exclusif), verrouillage exclusif, essayez d'ajouter le type de verrouillage avant l'opération d'écriture. Par conséquent, les autres scripts ne peuvent ni lire ni écrire.
Verrouillage d'intention : tous les scripts qui exploitent des ressources suivent une convention pour utiliser les verrous de fichiers (convention).
flock($handle, type de verrouillage);
Type :
LOCK_SH Verrouillage en lecture
LOCK_EX Verrouillage en écriture
LOCK_UN Déverrouillage
<?php //*********脚本1,想要读取文件信息*********** //尝试加读锁 $lock_result= flock($handle, LOCK_SH); //判断锁定结果 if(!$lock_result){ die('锁定失败,不能操作文件'); } //文件操作 $str = fgets($handle, 1024); var_dump($str); sleep(5); echo '<br>'; $str = fgets($handle, 1024); var_dump($str); flock($handle, LOCK_UN);//解锁 ?> <?php //*********脚本2,想要往文件里写入信息*********** //尝试加写锁 $lock_result= flock($handle, LOCK_EX); //判断锁定结果 if(!$lock_result){ die('锁定失败,不能操作文件'); } //文件操作 $result = fwrite($handle, '123456'); flock($handle, LOCK_UN);//解锁 ?>
Lorsque des collègues s'exécutent, le script 2 ci-dessus doit attendre (dans l'état bloqué) que le script 1 soit exécuté. exécution complète. Sera exécuté, souligne qu'il faut juger si le verrou est ajouté avec succès
Vous pouvez utiliser LOCK_NB pour ne pas bloquer lorsque le verrou échoue :
$lock_result = flock($handle, LOCK_EX | LOCK_NB);
Déverrouiller :
Flock($handle, LOCK_UN) pour forcer le déverrouillage,
Fclose() pour automatiquement ouvrir!
Recommandations associées :
Partage d'exemples d'opérations de fichiers PHP
Introduction de base au téléchargement de fichiers PHP
Partage d'un exemple simple de téléchargement de fichier php
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!