Application avancée du traitement de fichiers PHP - accès aux fichiers à distance et verrouillage des fichiers
En PHP, en plus des opérations de base de lecture et d'écriture sur les fichiers, vous pouvez recherchez et localisez également le pointeur de fichier et verrouillez le fichier en cours de lecture.
Les articles précédents "Traitement de fichier PHP - ouvrir/fermer le fichier ", "Traitement de fichier PHP - lire le fichier (un caractère, chaîne) " , "Traitement de fichiers PHP—Comment lire des fichiers" et "Traitement de fichiers PHP—Écriture de fichiers et fichiers d'exploitation" présentent les opérations de lecture et d'écriture de base du traitement de fichiers. Cette section en apprendra davantage sur les fichiers avancés. techniques de traitement.
1 : Accès aux fichiers à distance
PHP prend en charge l'appel de fichiers au format URL, il suffit de le définir dans php.ini. Recherchez Allow_url_fopen dans php. ini et définissez cette option sur ON. Après avoir redémarré le serveur, vous pouvez utiliser le format d'URL HTTP ou FTP,
, par exemple :
fopen("http://http://127.0.0.1/php/1.php","rb");
2 : Verrouiller le fichier
Lors de l'écriture du contenu dans un fichier texte, vous devez d'abord verrouiller le fichier pour empêcher d'autres utilisateurs de modifier le contenu du fichier. La fonction pour verrouiller le fichier en PHP est flock(). cette fonction est la suivante :
bool flock ( resource $handle , int $operation [, int &$wouldblock ] )
参数值 | 说明 |
LOCK_SH | 取得共享锁定(读取文件) |
LOCK_EX | 取得独占锁定(写入文件) |
LOCK_UN | 释放锁定 |
LOCK_NB | 防止 flock()在锁定时堵塞 |
Dans l'exemple suivant, utilisez la fonction flock() pour verrouiller le fichier, puis écrivez les données, et enfin déverrouillez et fermez le fichier. L'exemple de code spécifique est. comme suit :
<?php header("Content-Type:text/html; charset=utf-8"); $filename = "tm.txt"; //声明要打开的文件名称 $fd = fopen($filename,"w"); //以w 模式打开文件 flock($fd,LOCK_EX); //锁定文件(独占共享) fwrite($fd,"我爱PHP中文网 www.php.cn"); //向文件中写入数据 flock($fd,LOCK_UN); //解除文件 fclose($fd); //关闭文件指针 readfile($filename); //输出文件内容 ?>
Le résultat de sortie est :
Explication :
écrit des données dans le fichier Lors de l'utilisation du mode W ou w+ pour ouvrir le fichier, si LOCK_EX est utilisé à ce moment, les autres utilisateurs qui accèdent au fichier en même temps ne pourront pas obtenir la taille du fichier. fichier et ne peut pas effectuer d'opérations !
Dans le prochain article, nous continuerons à présenter les pointeurs de fichiers pour les applications avancées de traitement de fichiers. Pour plus de détails, veuillez lire « Applications avancées du traitement de fichiers PHP – Pointeurs de fichiers ». !
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!