Maison  >  Article  >  développement back-end  >  Comment utiliser la fonction php fopen

Comment utiliser la fonction php fopen

藏色散人
藏色散人original
2019-05-28 14:23:343053parcourir

La fonction php fopen est utilisée pour ouvrir un fichier ou une URL. Sa syntaxe est fopen(filename, mode, include_path, context). Le paramètre filename est obligatoire, qui fait référence au fichier ou à l'URL Mode est obligatoire. , qui fait référence à l'exigence relative au fichier/Le type d'accès au flux.

Comment utiliser la fonction php fopen

Comment utiliser la fonction php fopen ?

Définition et utilisation

La fonction fopen() ouvre un fichier ou une URL.

Si l'ouverture échoue, cette fonction renvoie FALSE.

Syntaxe

fopen(filename,mode,include_path,context)

Paramètres

nom de fichier requis. Spécifie le fichier ou l'URL à ouvrir.

mode requis. Spécifie le type d'accès requis à ce fichier/flux. Les valeurs possibles sont indiquées dans le tableau ci-dessous.

include_path Facultatif. Si vous devez également récupérer des fichiers dans include_path, vous pouvez définir ce paramètre sur 1 ou TRUE.

contexte Facultatif. Spécifie l’environnement d’un descripteur de fichier. Le contexte est un ensemble d'options pouvant modifier le comportement du flux.

Valeurs possibles du paramètre mode

mode Description

"r" Ouvrir en mode lecture seule, en pointant le pointeur du fichier vers le en-tête du fichier.

"r+" Ouvrez en mode lecture et écriture et pointez le pointeur du fichier vers l'en-tête du fichier.

"w" Ouvrez en mode écriture, pointez le pointeur du fichier sur l'en-tête du fichier et tronquez la taille du fichier à zéro. Si le fichier n'existe pas, essayez de le créer.

"w+" Ouvrez en mode lecture et écriture, pointez le pointeur du fichier sur l'en-tête du fichier et tronquez la taille du fichier à zéro. Si le fichier n'existe pas, essayez de le créer.

"a" Ouvrez en mode écriture et pointez 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 et écriture et pointez le pointeur de fichier vers la fin du fichier. Si le fichier n'existe pas, essayez de le créer.

"x" est créé et ouvert 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 et génère un message d'erreur de niveau E_WARNING. Si le fichier n'existe pas, essayez de le créer.

Cela équivaut à spécifier l'indicateur O_EXCL|O_CREAT à l'appel système open(2) sous-jacent.

Cette option est prise en charge par PHP 4.3.2 et versions ultérieures et ne peut être utilisée que pour les fichiers locaux.

"x+" le crée et l'ouvre en lecture et 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 et génère un message d'erreur de niveau E_WARNING. Si le fichier n'existe pas, essayez de le créer.

Cela équivaut à spécifier l'indicateur O_EXCL|O_CREAT à l'appel système open(2) sous-jacent.

Cette option est prise en charge par PHP 4.3.2 et versions ultérieures et ne peut être utilisée que pour les fichiers locaux.

Explication

fopen() lie la ressource de nom spécifiée par nom de fichier à un flux. Si le nom de fichier est de la forme "scheme://...", il est traité comme une URL et PHP recherchera un gestionnaire de protocole (également appelé protocole wrapper) pour gérer le schéma. Si le protocole wrapper n'a pas été enregistré pour le protocole, PHP émettra un message pour aider à vérifier les problèmes potentiels dans le script et continuer l'exécution du nom de fichier comme s'il s'agissait d'un nom de fichier normal.

Si PHP pense que le nom de fichier spécifie un fichier local, il essaiera d'ouvrir un flux sur ce fichier. Le fichier doit être accessible à PHP, vous devez donc confirmer que les autorisations d'accès au fichier autorisent cet accès. Si le mode sans échec ou open_basedir est activé, d'autres restrictions s'appliquent.

Si PHP estime que le nom de fichier spécifie un protocole enregistré et que le protocole est enregistré en tant qu'URL réseau, PHP vérifiera et confirmera que allow_url_fopen a été activé. S'il est fermé, PHP émettra un avertissement et l'appel à fopen échouera.

La prise en charge du contexte a été ajoutée dans PHP 5.0.0.

Conseils et notes

Remarque : différentes familles de systèmes d'exploitation ont des conventions de fin de ligne différentes. Lorsque vous écrivez dans un fichier texte et que vous souhaitez insérer une nouvelle ligne, vous devez utiliser des fins de ligne compatibles avec le système d'exploitation. Les systèmes Unix utilisent n comme caractère de fin de ligne, les systèmes Windows utilisent rn comme caractère de fin de ligne et les systèmes Macintosh utilisent r comme caractère de fin de ligne. Si les fichiers sont écrits avec des fins de ligne incorrectes, d'autres applications peuvent se comporter étrangement lors de l'ouverture des fichiers.

Windows fournit une balise de conversion de texte ("t") qui peut convertir de manière transparente n en rn. Alternativement, "b" peut être utilisé pour forcer le mode binaire afin que les données ne soient pas converties. Pour utiliser ces indicateurs, utilisez "b" ou "t" comme dernier caractère de l'argument mode.

Le mode de conversion par défaut dépend de la version SAPI et PHP utilisée, donc pour des raisons de portabilité, il est encouragé à toujours spécifier les balises appropriées. Si vous travaillez avec des fichiers de texte brut et utilisez n comme terminateur de ligne dans votre script, mais que vous souhaitez également que les fichiers soient lisibles par d'autres applications telles que le Bloc-notes, utilisez "t" en mode. Utilisez "b" dans tous les autres cas.

在操作二进制文件时如果没有指定 "b" 标记,可能会碰到一些奇怪的问题,包括坏掉的图片文件以及关于 \r\n 字符的奇怪问题。

注释:为移植性考虑,强烈建议在用 fopen() 打开文件时总是使用 "b" 标记。

注释:再一次,为移植性考虑,强烈建议你重写那些依赖于 "t" 模式的代码使其使用正确的行结束符并改成 "b" 模式。

例子

<?php
$file = fopen("test.txt","r");
$file = fopen("/home/test/test.txt","r");
$file = fopen("/home/test/test.gif","wb");
$file = fopen("http://www.example.com/","r");
$file = fopen("ftp://user:password@example.com/test.txt","w");
?>

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn