Maison >développement back-end >tutoriel php >Classe pour générer des fichiers HTML en utilisant php

Classe pour générer des fichiers HTML en utilisant php

藏色散人
藏色散人avant
2019-10-11 13:24:493182parcourir

Objectif

Utiliser PHP pour générer des documents HTML, prendre en charge l'imbrication et l'indentation des étiquettes, prendre en charge les attributs personnalisés des étiquettes

Cause

Cette chose a en effet été écrite sur un coup de tête. Elle était initialement destinée à générer des fragments HTML, mais plus tard, elle a été simplement écrite comme une fonction capable de générer du HTML complet

Je suis très satisfait du mécanisme d'indentation à l'intérieur ; . , si vous le trouvez utile, vous pouvez le consulter

ps De nos jours, le front-end et le back-end sont vraiment séparés (vue, nodejs, webpack...), utilisez simplement ce truc si vous le trouvez. aimez-le, oubliez-le si vous ne l'aimez pas ~

Balises prises en charge

html, head, meta, title, body, input, select/option, form , table, div, commentaires et balises personnalisées (apparaissant par paires), ainsi que de nombreux attributs (introduits ci-dessous)

Mise en œuvre

Global

1. Chaque balise correspond à une classe, comme la balise , qui correspond à une classe appelée html

2. J'ai mis tous les attributs utilisés dans les balises. dans une classe et fourni des méthodes pour les obtenir. Attributs attribués

Indentation imbriquée

J'ai conçu une classe pour chaque balise, comme la balise table, et il y en a. une classe appelée table avec correspondant à

, chaque classe a généralement les trois membres importants suivants :

1 La valeur d'indentation de cette balise

2. produisant la chaîne finale de cette balise, out()

3. Pour ajouter une sous-balise à cette balise, append()

où append() reçoit l'objet de la sous-balise, et appelle enfin $html-> ;Lorsque out(), la méthode out() dans chaque objet de sous-étiquette sera appelée dans l'ordre, et la valeur d'indentation sera également transmise de la classe supérieure à la classe inférieure et accumulée ;

De plus, chaque classe contient des classes d'attributs (attribut calss). La valeur d'indentation de chaque classe est héritée de la classe d'attribut, donc si l'indentation dans la classe d'attribut est modifiée, l'indentation de toutes les classes changera en conséquence

Vous pouvez également ajouter votre propre valeur d'indentation à la classe d'étiquette pour remplacer la valeur d'indentation unifiée

Attribut

Ma solution ici est de définir une classe (calss attribut), qui contient

1. Attributs que les balises peuvent avoir

2. Méthode setXxx correspondante

3. Assemblez des attributs non vides pour former une chaîne Méthode

.

4. Afin de ne pas affecter l'affichage suivant, il y aura une méthode d'effacement spéciale pour effacer tous les attributs précédemment attribués

Dans ce cas, lors de la définition des attributs de l'étiquette, il suffit d'attribuer une valeur. . Si vous n'attribuez pas une valeur qui n'est pas nécessaire, elle ne sera pas affichée dans le code HTML final

Code source

Adresse : Code Cloud Regardez le. test.php, consiste à présenter son utilisation.

Pour plus de connaissances sur PHP, veuillez visiter le Site Web PHP chinois !

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer