Section sale php. Inclure des fichiers en PHP en utilisant include et require. Différence entre les éléments de section et d'article

Un article qui explore l'élément de section HTML de la catégorie de sectionnement.

Objectif de l'élément de section

L'élément section est utilisé pour créer une section dans un document qui regroupe du contenu de sujet. Pour chaque section du document, son nom (sujet) doit être indiqué. Cela se fait généralement avec des en-têtes (éléments h1-h6).

Tête de section

Contenu de la rubrique...

Les éléments de section sont couramment utilisés dans les situations suivantes :

  • pour baliser des sections à l'intérieur d'une section. Par exemple, pour baliser des chapitres dans un article, des onglets dans une boîte de dialogue, des sections dans une dissertation, etc.
  • de regrouper plusieurs sections en un seul groupe thématique. Par exemple, pour regrouper les dernières actualités du site, des commentaires sur un article, etc.

Ainsi, l'élément section ne doit être utilisé pour certains contenus que s'il a un titre et fait partie d'autre chose.

Utilisation de l'élément section

Par exemple, considérons un extrait de code de page qui contient un article avec des commentaires. Chacun des commentaires postés par l'utilisateur sur la page contient un contenu complet et peut donc être considéré comme un élément d'article. Mais, en même temps, tous les commentaires représentent un certain groupe thématique et peuvent donc être placés dans l'élément de section, c'est-à-dire cet élément regroupera tous ces commentaires sur la page.

Le titre de l'article

Commentaires (1)

En-tête de commentaire

Texte de commentaire...

En-tête de commentaire

Texte de commentaire...

Titre de l'article Commentaires Titre du commentaire Titre du commentaire

Par exemple, envisagez d'utiliser des éléments de section pour créer des sections dans un élément d'article :

Titre de livre

Premier chapitre

Chapitre deux

Chapitre trois

Annexe A

Appendice B

L'exemple ci-dessus aura le schéma suivant :

Titre du livre Chapitre un Chapitre deux Chapitre trois Annexe A Annexe B

Limitations de l'utilisation de l'élément de section

L'élément section en HTML 5 n'est pas un élément générique pour regrouper du contenu, c'est-à-dire il ne doit pas être utilisé pour envelopper le contenu que vous aimez. Son objectif principal est d'ajouter de la sémantique au document et de créer son contour.

Lorsqu'un auteur a besoin de regrouper du contenu juste pour le styliser ou le manipuler en JavaScript, le meilleur endroit est pour lui d'utiliser l'élément div. L'élément div, contrairement à l'élément section, n'ajoute pas de sémantique au document et ne participe pas à la création de son contour (outline).

Différence entre les éléments de section et d'article

Les éléments de section et d'article, bien qu'à première vue semblent très similaires, ont des significations sémantiques différentes. L'élément article est destiné à regrouper un contenu complet, autonome et pouvant être visualisé séparément du reste du contenu de la page. Et l'élément section a une signification sémantique différente, il est destiné à regrouper un contenu qui fait partie intégrante d'autre chose.

Mais comment un auteur peut-il savoir quel est le contenu d'une page ? Regardons cela en utilisant un exemple d'extrait d'article. Un extrait fait partie d'un article, et donc un élément de section doit être utilisé pour regrouper son contenu. Mais le même fragment, déjà laissé en commentaire, représentera quelque chose d'entier, de complet. Par conséquent, dans ce contexte, l'élément article peut être utilisé pour le grouper. Mais, bien sûr, on peut raisonner, et vice versa. Par conséquent, l'élément à utiliser pour regrouper le contenu dépend dans la plupart des cas de votre opinion subjective en tant qu'auteur. Mais le plus important dans cette approche est de maintenir la position choisie. Par conséquent, plus l'auteur est cohérent dans la création de la structure, plus il peut y mettre de sens.

Lors de la création de sites en auto-écriture (sans utiliser de frameworks, CMS, et autres choses à la mode qui simplifient la vie des développeurs web), nous sommes confrontés au problème de faire des modifications sur le site quand il y a beaucoup de pages.

Afin que nous n'ayons pas à modifier les mêmes parties du site dans chacun des fichiers de page, nous pouvons utiliser des instructions PHP pratiques qui nous permettent d'inclure des fichiers avec le code nécessaire dans toutes les pages avec littéralement une ligne de code. Ensuite, en modifiant le contenu du fichier inclus, nous modifions le code sur toutes les pages du site. Pratique, peu importe à quoi vous ressemblez.

Voyons maintenant les manières de connecter des fichiers plus en détail :

Utiliser inclure et exiger

Vous ne pourrez pas trouver de différence fondamentale entre ces deux consignes avec tout votre désir, mais il y a des nuances :

Si une erreur se produit lors de l'exécution de la commande require, l'analyseur recevra une réponse d'erreur fatale et l'exécution du code de la page s'arrêtera, tandis que include n'émettra qu'un avertissement et l'exécution du fichier se poursuivra (le fichier ne sera tout simplement pas connecté ).

Prenons un exemple simple pour une meilleure compréhension du sujet.

Nous avons notre minisite dans lequel l'en-tête et le pied de page sont les mêmes sur toutes les pages, et le corps du document change.

On crée des fichiers header.php et footer.php dans lesquels on met le code qui sera le même sur toutes les pages, et dans les fichiers index.php et newpage.php on va connecter les parties statiques. En conséquence, nous obtenons :

Contenu de l'en-tête.php

< header> < nav> < a href= "newpage1.php" title= "élément du menu" >élément du menu < a href= "newpage2.php" title= "élément du menu" >élément du menu < a href= "newpage3.php" title= "élément du menu" >élément du menu

Contenu Footer.php

< footer> < p>Fabriqué par nous

Contenu des autres pages du site

Mini-site

Beaucoup d'informations utiles

À la suite du chargement de notre page, nous obtenons l'image suivante :

Comme on peut le voir, tout fonctionne très bien.

Je voudrais attirer votre attention sur le fait que nous avons exécuté l'exemple sur le serveur local Denwer, car PHP nécessite un serveur avec son support pour PHP pour fonctionner. Si vous créez un site Web dans un simple dossier sur un PC, rien ne fonctionnera.

Dans l'exemple ci-dessus, nous avons utilisé l'en-tête require et le pied de page include. Ce qu'il faut utiliser sur vos sites dépend de vous. Comme déjà mentionné, il n'y a pas beaucoup de différence entre eux. À moins que require soit considéré comme une déclaration un peu plus stricte.

En fait, la ligne copie simplement tout le contenu du fichier, le chemin vers lequel nous indiquons, à l'intérieur du document dans lequel il se trouve.

Utiliser include _once et require _once

Lorsque vous travaillez sur un site, des problèmes peuvent survenir du fait que le même morceau de code est inclus à plusieurs reprises dans le même fichier.

Supposons que cela se produise en raison du fait que plusieurs personnes ont travaillé sur le site, et lorsque les codes ont été fusionnés, un tel incident est survenu ...

Les développeurs utilisent souvent les instructions include_once et require_once pour éliminer la possibilité de tels problèmes. Le principe de fonctionnement pour eux est exactement le même que pour include avec require, mais si le fichier dans une telle instruction a déjà été connecté au nôtre, alors la reconnexion ne se produira pas.

Les inconvénients de cette méthode incluent le fait qu'elle est plus lente et plus gourmande en calculs que ses prédécesseurs avec require, car il devient nécessaire de se souvenir de tous les fichiers connectés et de les comparer afin d'éviter la duplication de code.

Sur une note

  • Pour faciliter la distinction entre les fichiers des pages du site et les fichiers de leurs fragments, que nous y incluons, les fichiers habituellement inclus ajoutent une partie inc au nom. En considérant cette approche dans notre exemple, nous obtiendrions le fichier header.inc.php à partir du fichier header.php et ainsi de suite. Cette approche peut rendre beaucoup plus facile à comprendre la structure du site à l'avenir.
  • Le code du fichier que nous connectons hérite de la portée de la ligne dans laquelle il est connecté. Tobish juste à l'intérieur de la page, il aura une portée globale, et à l'intérieur d'une fonction, il aura une portée locale.
  • Nous pouvons utiliser include avec require où nous voulons. Même à l'intérieur des scripts.

). Chaque balise (section) doit avoir une paire (/ section)... Les paramètres requis sont Nom et boucle... Le nom de la boucle (section) peut être n'importe quel nom composé de lettres, de chiffres et de traits de soulignement. Cycles (section) peuvent être imbriqués et les noms imbriqués (section) doivent être uniques entre eux. Variable boucle(généralement un tableau de valeurs) détermine le nombre d'itérations de la boucle. Lors de l'impression de variables à l'intérieur d'une section, le nom de la section doit être indiqué à côté du nom de la variable entre crochets. (sectionelse) est exécuté si le paramètre boucle ne contient aucune valeur.

Nom d'attribut Type de Obligatoire Défaut La description
Nom chaîne de caractères Oui n / A Nom de la section
boucle mixte Oui n / A Une valeur qui détermine le nombre d'itérations de la boucle.
début entier Non 0 L'index de la position à laquelle la boucle commencera. Si la valeur est négative, la position de départ est calculée à partir de la fin du tableau. Par exemple, si la variable de boucle a 7 éléments et que la valeur de l'attribut de début est -2, alors l'indice de début sera de 5. Les valeurs invalides (valeurs en dehors du tableau) sont automatiquement tronquées à la valeur valide la plus proche.
étape entier Non 1 La valeur de foulée utilisée pour parcourir le tableau. Par exemple, pas = 2 indique un parcours du tableau par éléments 0,2,4 ... Si le pas est négatif, alors le tableau sera parcouru dans le sens inverse.
max entier Non 1 Le nombre maximal d'itérations de boucle.
spectacle booléen Non vrai Indique s'il faut afficher cette section ou non

Noter

À partir de Smarty 1.5.0, la syntaxe des variables de propriété de session a été modifiée de (% nomsection.nomvar%) à ($ smarty.section.nomsection.nomvar). L'ancienne syntaxe est toujours prise en charge, mais vous ne verrez que des exemples de la nouvelle syntaxe.

index est utilisé pour afficher l'index actuel du tableau, en commençant à zéro (ou à l'attribut start, si spécifié) et en augmentant de un (ou de la valeur de l'attribut step, si spécifié).

Note technique

Si les attributs step et start ne sont pas spécifiés, alors index est le même que l'attribut de section d'itération, sauf qu'il commence à 0 au lieu de 1.

iteration est utilisé pour afficher le numéro d'itération actuel de la boucle.

Noter

Cette valeur est indépendante des propriétés start, step et max, contrairement à la propriété index. De plus, les itérations commencent à un plutôt qu'à zéro comme les indices. rownum est un synonyme de la propriété d'itération, ils fonctionnent de la même manière.

Exemple 7.38. itération de propriété (section)

assign ("custid", $ id); ?> (section name = cu loop = $ custid start = 5 step = 2) iteration = ($ smarty.section.cu.iteration) index = ($ smarty.section.cu.index) id = ($ custid)
(/ section)

Le résultat de cet exemple :

Itération = 1 index = 5 id = 3005
itération = 2 index = 7 id = 3007
itération = 3 index = 9 id = 3009
itération = 4 index = 11 id = 3011
itération = 5 index = 13 id = 3013
itération = 6 index = 15 id = 3015

Cet exemple utilise la propriété itération pour imprimer le titre du tableau toutes les cinq lignes (utilise (if) avec l'opérateur mod).

(nom de la section = co boucle = $ contacts) (si $ smarty.section.co.iteration% 5 == 1) (/ si) (/ section)
Nom>AccueilCelluleE-mail
vue ($ contacts.nom) ($ contacts.home) ($ contacts.cell) ($ contacts.email)


Table des matières du document

1. fonction config_load

Syntaxe:
(fichier config_load = "nom de fichier")

Cette fonction est utilisée pour charger des variables à partir de fichiers de configuration dans un modèle. En plus du nom du fichier chargé, cette fonction peut avoir plusieurs paramètres supplémentaires. Par exemple, le paramètre section, qui spécifie le nom de la section à charger. Plus d'informations sur ces paramètres et d'autres peuvent être obtenues dans la documentation Smarty.

Exemple:
(fichier config_load = "task.conf")

2. Fonction de capture

Syntaxe:

(nom de capture = "nom_bloc"
assigner = "nom_variable") ...
(/ Capturer)

Cette fonction est conçue pour collecter la sortie du modèle dans une variable au lieu de l'afficher à l'écran.

Tout ce qui se trouve entre (capture name = "varname") et (/ capture) sera écrit dans une variable nommée varname. Le contenu ainsi capturé peut être utilisé dans le modèle à l'aide de la variable spéciale $ smarty.capture.varname, où varname est la valeur passée à l'attribut name de la fonction de capture. Si aucun nom de variable n'est spécifié, le nom par défaut sera utilisé.

Le deuxième paramètre assign spécifie le nom de la variable à laquelle la valeur de sortie capturée sera assignée. Ce paramètre, comme le nom, est facultatif.

3. Fonction de section

Syntaxe:

(nom de la section = "nom_section"
boucle = "variable_for_out_number_iterations"
[, start = "start_position_index"]
[, step = "step"] [, max = "maximum_iterations"]
[, show = "show_or_section"]) ...
(/ section)

Section La section est une boucle pour parcourir les éléments du tableau. Les paramètres requis sont name, qui est utilisé pour définir le nom de la section, et loop, qui est une variable qui détermine le nombre d'itérations de la boucle.

En règle générale, loop est une variable de tableau et le nombre d'itérations de section est égal au nombre d'éléments de ce tableau. Pour afficher une variable à l'intérieur d'une boucle, vous devez indiquer le nom de la section entre crochets après le nom de la variable.

(nom de la section = boucle d'art = titre $)

Titre : (titre)

(/ section)

Exemple 15.8. Boucle pour itérer sur les éléments du tableau

4. La fonction foreach

Syntaxe:

(foreach from = "array_name"
item = "current_item_name")
... (/ pour chaque)

De plus, vous pouvez utiliser la clé d'attributs supplémentaires - le nom de la clé pour l'élément actuel du tableau et le nom - le nom de la boucle, avec laquelle vous pouvez accéder à ses propriétés. Les attributs from et item sont obligatoires.

Les boucles Foreach sont une alternative aux boucles de section. La fonction foreach fonctionne très bien comme la boucle PHP foreach.
(foreach from = $ articles item = art)
Titre : ($ art)

(/ pour chaque)

Exemple 15.9. Boucle Foreach

Les boucles Foreach ont leurs propres propriétés. Vous pouvez y accéder de la manière suivante : ($ smarty.foreach.foreachname.varname), où foreachname est le nom de la boucle spécifiée par son paramètre name et varname est le nom de la propriété.

5. Opérateur si, sinon si, sinon

Syntaxe:

(si expression) action_block
(expression elseif1) action_block1
(sinon) action_block2
(/ si)

L'action de l'opérateur est presque la même que celle de l'opérateur PHP if ... elseif ... else.

Les opérateurs de comparaison suivants peuvent être utilisés dans les expressions : eq, ne, neq, gt, lt, lte, le, gte, ge, is even, is impair, is not even, is not impair, not, mod, div by, even par, impair par, ==,! =,>,<, <=, >=. Chacun d'eux doit être séparé des valeurs environnantes par des espaces. Vous pouvez utiliser des parenthèses dans les expressions et appeler des fonctions php.

(si $ nom eq "Vasya")
Bienvenue, Vassia.
(autrement $ nom eq "Petya")
Bienvenue, Petya.
(autre)
Bienvenue. Qui es-tu?
(/ si)

Exemple 15.10. Si, elseif, else instructions

(* cet exemple ne fonctionnera pas car il n'y a pas d'espace autour des opérateurs de comparaison *)
(si $ nom == "Vasya" || $ nom == "Petya")
...
(/ si)
Exemple 15.11. Exemple cassé