Maison  >  Article  >  développement back-end  >  Comment php génère-t-il des classes pour les fichiers HTML ? Comment générer une classe de fichier HTML en php

Comment php génère-t-il des classes pour les fichiers HTML ? Comment générer une classe de fichier HTML en php

不言
不言original
2018-08-10 13:48:262144parcourir

Le contenu de cet article concerne la façon dont PHP génère des classes pour les fichiers HTML ? La méthode de génération de classe de fichier HTML par PHP a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'elle vous sera utile.

Utilisez PHP pour générer des documents HTML, prendre en charge l'imbrication et l'indentation des balises, ainsi que les attributs personnalisés des balises

Cause

Cette chose a en effet été écrite sur un coup de tête, destinée à l'origine à produire HTML Il a été utilisé pour les extraits, mais plus tard, il a été simplement écrit 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 y jeter un œil
p.s. Maintenant, c'est un vrai front-end et back-end séparés (vue, nodejs, webpack...), utilisez ce truc si vous l'aimez, oubliez-le si vous ne l'aimez pas ~

Balises prises en charge

html, head, méta, titre, corps, entrée, sélection/option, formulaire, tableau, p, commentaires et balises personnalisées (balises qui apparaissent par paires), ainsi que de nombreux attributs (introduits ci-dessous)

implémentation

globale

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

  2. Utile dans les balises J'ai mis tous les attributs dans une classe et fourni une méthode pour obtenir les attributs attribués

Indentation imbriquée

J'ai Après avoir conçu une classe, comme la balise table, il existe une classe appelée table qui lui correspond

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

  1. La valeur d'indentation de cette balise

  2. est la méthode de sortie de la chaîne finale de cette balise, out()

  3. est la méthode pour ajouter des sous-balises à cette balise Send, append()

où append() reçoit l'objet de la sous-balise Lorsque $html->out(). est finalement appelé, la méthode out dans chaque sous-balise object () sera appelée séquentiellement, et la valeur d'indentation sera également transmise de la classe supérieure à la classe la plus inférieure et accumulée

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

Vous pouvez également ajouter la vôtre à la classe d'étiquette Indent value pour couvrir la valeur d'indentation unifiée

attribut

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

  1. Les attributs que peuvent avoir les balises

  2. correspondent à la méthode setXxx

  3. La méthode d'assemblage des non- vider les attributs dans une chaîne

  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 de l'attribut label, vous devez Si nécessaire, attribuer une valeur. Si vous n'attribuez pas de valeur si elle n'est pas nécessaire, elle ne sera pas affichée dans le code HTML final

Recommandé. articles connexes :

Méthodes abstraites, classes abstraites et interfaces en PHP Une brève introduction

Comment déterminer si le modèle thinkphp est un paiement mobile WeChat ou un scan WeChat paiement par code

Appel PHP sans transfert et code pour le transfert d'appel Exemple

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