Position actuelle: Accueil> Derniers articles> FGetSS "Fonction en php

FGetSS "Fonction en php

gitbox 2025-06-06

1. Introduction

La fonction FGETSS est une fonction de PHP qui lit une ligne à partir d'un fichier et filtre automatiquement les balises HTML et PHP. Il s'agit d'une amélioration basée sur la fonction FGETCSV. Contrairement à FGETCSV, il ne peut lire que des fichiers de format CSV, FGETSS peut lire le contenu des fichiers ordinaires et éliminer les marques de code potentielles pour améliorer la sécurité.

1.1 Syntaxe de la fonction FGETSS

 <span class="fun">String fgetss (Resource $ handle [, int $ longueur [, string $ allowing_tags]])</span>

1.2 Description du paramètre

Handle: requis, entrez la poignée du fichier.

Longueur: facultatif, spécifiant la longueur maximale des caractères de lecture, la valeur par défaut est 1024.

ALLOTAGE_TAGS: Facultatif, définit la liste des balises HTML que vous souhaitez conserver.

2. Exemple

Voici un exemple de base qui montre comment utiliser la fonction FGETSSS pour lire une ligne d'un fichier et filtrer toutes les balises HTML et PHP:

 $handle = fopen("/tmp/inputfile.txt", "r");
if ($handle) {
  while (($buffer = fgetss($handle, 1024)) !== false) {
    echo $buffer;
  }
  if (!feof($handle)) {
    echo "Lire l&#39;erreur de fichier";
  }
  fclose($handle);
}

2.1 Analyse de code

La fonction FOPEN ouvre le fichier en mode en lecture seule. Dans la boucle while, FGETSSS lit le contenu du fichier ligne par ligne. Étant donné que le paramètre autorisé_tags n'est pas spécifié, toutes les balises HTML et PHP seront supprimées pour garantir que le texte pur est sorti.

3. Cas d'utilisation

3.1 Filtrez des balises HTML et des entités d'évasion

Combinée à la fonction HTMLentities, les balises HTML peuvent être converties en caractères entités, empêchant davantage les risques de sécurité tels que XSS. Les exemples sont les suivants:

 $filename = "input.txt";
$handle = fopen($filename, "r");
if ($handle) {
  while (($buffer = fgetss($handle, 1024)) !== false) {
    $buffer = htmlentities($buffer);
    echo $buffer;
  }
  if (!feof($handle)) {
    echo "Lire l&#39;erreur de fichier";
  }
  fclose($handle);
}

Cet exemple de code garantit que chaque ligne de contenu lue est convertie par l'entité HTML, en évitant les risques potentiels d'injection de script.

3.2 Conserver le filtrage d'étiquette spécifié

Si vous souhaitez conserver certaines balises HTML spécifiques lors du filtrage, vous pouvez utiliser le paramètre ALLOGED_TAGS pour y parvenir. Les exemples sont les suivants:

 $filename = "input.txt";
$handle = fopen($filename, "r");
if ($handle) {
  while (($buffer = fgetss($handle, 1024, '<p><a>')) !== false) {
    echo $buffer;
  }
  if (!feof($handle)) {
    echo "Lire l&#39;erreur de fichier";
  }
  fclose($handle);
}

Dans l'exemple ci-dessus, la fonction FGETSS filtre toutes les balises HTML et PHP, mais les conserve.

et des étiquettes, adaptées aux scénarios où des formats partiellement conservés sont nécessaires.

4. Résumé

FGETSSS est une fonction de lecture de fichiers très pratique dans PHP. Il peut filtrer les balises HTML et PHP lors de la lecture de fichiers, en évitant l'injection de code et les attaques de scripts inter-sites. Combiné avec la fonction HTMLentities, la sécurité des données peut être améliorée. Dans le même temps, le paramètre ALLOD_TAGS fournit un contrôle de rétention de balises flexible, qui convient à une variété de besoins de développement.