2008-10-31 5 views
2

Je me demande comment je peux briser ma page d'accueil index.php à plusieurs pages php (c'est-à-dire header.php, footer.php) et construire une page index.php en utilisant ces pages php distinctes. Je sais que WordPress utilise avec différentes fonctions comme:Breaking up PHP Websites

GetHeader(); 
GetFoodter(); 

Mais quand j'ai essayé d'utiliser ces fonctions, il les erreurs. Je devine qu'ils ne sont pas des fonctions natives de PHP.

Que devrais-je faire pour obtenir cette fonctionnalité?

Répondre

9
include 'header.php'; 

include 'footer.php'; 
-1

utilisation comprennent des déclarations à simplement inclure ces fichiers à votre

Je pense qu'il est

include '[filename]' 
+0

En fait, dans PHP il est include ('filename'); – user29772

1

Vous pouvez effectuer les opérations suivantes:

<?php 
    include('header.php'); 
    // Template Processing Code 
    include('footer.php'); 
?> 
2

Go avec un framework MVC comme Zend. De cette façon, vous garderez plus de code maintenable.

+0

Bien que Zend soit plutôt lourd, c'est une option. Je recommanderais cependant d'examiner les frameworks tels que CakePHP, symfony et CodeIgniter. –

+0

Génial, merci pour la recommandation. Ce n'est pas vraiment un gros site donc je pense que le [ci-dessus 'nom-fichier.php';] va être assez bon. Je vais certainement devoir lire sur CakePHP et Zend. – JoshFinnie

+0

Je pense que ce serait une bonne chose (et comme le suggère Thomas, ne vous limitez pas à Zend). Si j'avais un centime pour chaque fois je pensais "ça va juste être un petit site ..." :-P – Jilles

1

L'instruction include() inclut et évalue le fichier spécifié.

donc si vous créez index.php comme:

<?php 
include("1.php"); include("2.php"); include("3.php"); 
?> 

traitement, il associera trois fichiers php (résultat de leur analyse par php) en sortie de votre index.php ... vérifier plus à http://pl.php.net/manual/pl/function.include.php

0

Si votre serveur est configuré en conséquence, vous pouvez utiliser PHP construit dans les paramètres append/de PREPEND auto et le mettre dans un fichier .htaccess:

php_value auto_prepend_file "header.php"
php_value auto_append_file "footer.php"

Info:
www.php.net/manual/en/configuration.changes.php#configuration.changes.apache
www.php.net/ini. noyau # ini.auto-précédez fichier
www.php.net/ini.core#ini.auto-append-file

1

De plus, si je me souviens bien, vous pouvez également utiliser

<?php 
require('filename'); 
?> 

la différence étant, si php ne trouve pas le fichier que vous voulez inclure, il s'arrêtera là au lieu de continuer à exécuter le script ...

0

Je réalise que c'est une vieille question, qui a déjà une validité parfaite réponse acceptée, mais je voulais ajouter un peu plus d'informations.

Alors que include 'file.php'; est bien pour lui-même, il y a des avantages à encapsuler ce genre de choses dans les fonctions, comme fournir une portée.

Je suis un peu nouveau à PHP, donc la nuit dernière je jouais avec casser des choses dans des fichiers tels que 'header.php', 'footer.php', 'menu.php' pour la première fois.Un problème que j'ai eu était que je voulais avoir l'élément de menu pour une page/section mis en évidence différemment lorsque vous étiez sur cette page ou dans cette section. C'est à dire. de la même manière que "Questions" est surligné en orange sur cette page sur StackOverflow. Je pourrais définir une variable sur chaque page qui serait utilisée dans l'include, mais cela a rendu la variable sorte de global. Si vous intégrez l'include dans une fonction, vous pouvez définir des variables avec une portée locale pour le gérer.

0

Vous pouvez également regarder dans un moteur de modèle comme Smarty. De cette façon, vous définissez l'en-tête et le pied de page et tous les autres éléments communs dans un seul fichier, puis complétez le reste à l'aide de modèles plus petits ou d'une sortie directe.