Maison > Article > développement back-end > (Avancé) Fonctions d'opération de fichiers couramment utilisées en PHP
Voici les fonctions d'opération de fichiers PHP. Bien sûr, ce n’est qu’une partie, il y en a bien d’autres que je n’ai pas cités.
1. Analyser le chemin :
1 Obtenez le nom du fichier :
basename();
donne une chaîne contenant le chemin complet d'un fichier, cette fonction renvoie le nom du fichier de base. Si le nom du fichier se termine par un suffixe, cette partie sera également supprimée.
par exemple :
$path = "/home/httpd/html/index.php"; $file = basename($path,".php"); // $file is set to "index"
2 Récupère la partie répertoire :
dirname();
donne un répertoire contenant le chemin complet d'un fichier String , cette fonction renvoie le nom du répertoire après avoir supprimé le nom du fichier.
par exemple :
$path = "/etc/passwd"; $file = dirname($path); // $file is set to "/etc"
3 Récupère le tableau associatif du chemin
pathinfo();
Récupère les trois parties d'un chemin spécifié : nom du répertoire , nom de base, extension.
par exemple :
$pathinfo = pathinfo("www/test/index.html"); var_dump($pathinfo); // $path['dirname'] $path['basename'] $path['extenssion']
2. Type de fichier
1. filetype();
Renvoie le type de fichier. Les valeurs possibles sont fifo, char, dir, block, link, file et inconnu.
par exemple :
echo filetype('/etc/passwd'); // file echo filetype('/etc/'); // dir
3. Obtenez un tableau d'informations utiles pour un fichier donné (très utile)
1. > Passé Le pointeur de fichier ouvert obtient les informations sur le fichier
Obtient les informations statistiques du fichier ouvert par le handle du pointeur de fichier. Cette fonction est similaire à la fonction stat(), sauf qu'elle opère sur un pointeur de fichier ouvert au lieu d'un nom de fichier.
par exemple :
// 打开文件 $fp = fopen("/etc/passwd", "r"); // 取得统计信息 $fstat = fstat($fp); // 关闭文件 fclose($fp); // 只显示关联数组部分 print_r(array_slice($fstat, 13));2. stat()
Obtenir les informations statistiques du fichier spécifié par nom de fichier (analogue à fstat())
1. filesize()
Renvoie le nombre d'octets de la taille du fichier si une erreur se produit, il renvoie FALSE et génère une erreur de niveau E_WARNING.
par exemple :
// 输出类似:somefile.txt: 1024 bytes $filename = 'somefile.txt'; echo $filename . ': ' . filesize($filename) . ' bytes';
2. disk_free_space()
Obtenir l'espace libre (unités d'octets) de la partition de disque où se trouve le répertoire
par exemple
// $df 包含根目录下可用的字节数 $df = disk_free_space("/"); //在 Windows 下: disk_free_space("C:"); disk_free_space("D:");
3. disk_total_space()
Renvoie la taille totale du disque d'un répertoire
par exemple : (comme ci-dessus, remplacez la fonction)
Un autre : si vous avez besoin de calculer la taille d'un répertoire, vous pouvez écrire une fonction récursive pour implémenter le
function dir_size($dir){ $dir_size = 0; if($dh = @opendir($dir)){ while(($filename = readdir($dh)) != false){ if($filename !='.' and $filename !='..'){ if(is_file($dir.'/'.$filename)){ $dir_size +=filesize($dir.'/'.$filename); }else if(is_dir($dir.'/'.$filename)){ $dir_size +=dir_size($dir.'/'.$filename); } } }#end while }# end opendir @closedir($dh); return $dir_size; } #end function5.
1. fileatime() : heure du dernier accès
2. filectime() : heure de la dernière modification (modification de toutes les données)
3. filemtime() : heure de la dernière modification (se référant uniquement à la modification du contenu)
description du mode
'r. ' Ouvrez en mode lecture seule, pointez le pointeur du fichier sur l'en-tête du fichier.
'r 'Ouvrez en mode lecture-écriture et pointez le pointeur du fichier vers l'en-tête du fichier.
'w' active le mode écriture, pointe le pointeur de fichier vers l'en-tête du fichier et tronque la taille du fichier à zéro. Si le fichier n'existe pas, essayez de le créer.
'w' s'ouvre en mode lecture-écriture, pointe le pointeur de fichier vers l'en-tête du fichier et tronque la taille du fichier à zéro. Si le fichier n'existe pas, essayez de le créer.
'a' s'ouvre en mode écriture et pointe le pointeur de fichier vers la fin du fichier. Si le fichier n'existe pas, essayez de le créer.
'a' Ouvrez en mode lecture-écriture et pointez le pointeur de fichier vers la fin du fichier. Si le fichier n'existe pas, essayez de le créer.
'x' crée et s'ouvre en écriture, en pointant le pointeur du fichier vers l'en-tête du fichier. Si le fichier existe déjà, l'appel fopen() échoue et renvoie FALSE,
'x' est créé et ouvert en lecture et en écriture, pointant le pointeur du fichier vers l'en-tête du fichier. Si le fichier existe déjà, l'appel fopen() échoue et renvoie FALSE
eg:
Identique à file_get_contents(), sauf que file() traite le fichier comme un array Tableau renvoyé. Chaque cellule du tableau correspond à une ligne correspondante dans le fichier, y compris les nouvelles lignes. En cas d'échec, file() renvoie FALSE.
par exemple :
$lines = file('http://www.example.com/'); // 在数组中循环,显示 HTML 的源文件并加上行号。 foreach ($lines as $line_num => $line) { echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n"; } // 另一个例子将 web 页面读入字符串。参见 file_get_contents()。 $html = implode('', file ('http://www.example.com/'));
à partir du handle. Lit une ligne à partir du fichier pointé et renvoie une chaîne d'une longueur maximale de 1 octet. S'arrête lorsqu'un caractère de nouvelle ligne (inclus dans la valeur de retour), EOF ou une longueur de 1 octet a été lu (selon la première éventualité). Si la longueur n'est pas spécifiée, la valeur par défaut est 1 Ko, soit 1 024 octets.
par exemple :
$handle = @fopen("/tmp/inputfile.txt", "r"); if ($handle) { while (!feof($handle)) { $buffer = fgets($handle, 4096); echo $buffer; } fclose($handle); }4. fgetss -- Lire une ligne à partir du pointeur de fichier et filtrer les balises HTML
est identique à fgets(). , uniquement Except fgetss tente de supprimer toutes les balises HTML et PHP du texte en cours de lecture.
Autre : Opérations sur le répertoire :
1 opendir -- ouvrir le handle du répertoire. , Ouvre un handle de répertoire qui peut être utilisé dans les appels ultérieurs de closeir(), readdir() et rewinddir().
2. readdir -- Lit l'entrée à partir du handle du répertoire et renvoie le nom du fichier suivant dans le répertoire. Les noms de fichiers sont renvoyés dans l'ordre dans le système de fichiers.
par exemple :
// 注意在 4.0.0-RC2 之前不存在 !== 运算符 if ($handle = opendir('/path/to/files')) { echo "Directory handle: $handle\n"; echo "Files:\n"; while (false !== ($file = readdir($handle))) { echo "$file\n"; } while ($file = readdir($handle)) { echo "$file\n"; } closedir($handle); }
3. Très utile), renvoie un tableau contenant les fichiers et répertoires du répertoire.
L'ordre de tri par défaut est l'ordre alphabétique croissant. Si le paramètre facultatif sorting_order est utilisé (défini sur 1), l'ordre de tri est l'ordre alphabétique décroissant.
par exemple :
$dir = '/tmp'; $files1 = scandir($dir); $files2 = scandir($dir, 1); print_r($files1); print_r($files2);
另外注:
七、 对文件属性的操作(操作系统环境不同,可能有所不一样,这点要注意)
1文件是否可读:
boolis_readable ( string filename )
如果由 filename 指定的文件或目录存在并且可读则返回 TRUE。
记住 PHP 也许只能以运行 webserver 的用户名(通常为 'nobody')来访问文件。不计入安全模式的限制。
2 文件是否可写
bool is_writable ( string filename )
如果文件存在并且可写则返回 TRUE。filename 参数可以是一个允许进行是否可写检查的目录名。
记住 PHP 也许只能以运行 webserver 的用户名(通常为 'nobody')来访问文件。不计入安全模式的限制
3 检查文件是否存在
boolfile_exists ( string filename )
如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE
以上就是(进阶篇) PHP常用的文件操作函数的内容,更多相关内容请关注PHP中文网(www.php.cn)!