9
votes

Nécessite plusieurs fichiers

Je construis une application PHP utilisant un menu Select pour créer des modèles de messagerie. Les modèles sont brisés en parties réutilisables (chacun est un fichier HTML séparé). Existe-t-il un moyen facile de demander plusieurs fichiers avec une expression? (Mon PHP est vraiment rouillé ...)

essentiellement, je veux faire quelque chose comme: xxx


0 commentaires

3 Réponses :


14
votes

Eh bien, vous pouvez le transformer en une fonction:

require_multi("one.php", "two.php", ..);


0 commentaires

6
votes

crédit à Tom Haigh de Comment nécessiter tous les fichiers d'un dossier? : xxx

stocker tous vos fichiers requis dans < code> $ dir et le code ci-dessus fera le reste.


2 commentaires

Cela pourrait être très utile pour le débogage. Je suis dans une situation maintenant où je dois charger tous les fichiers CSS dans ./ CSS , donc il woks. (Pour le débogage, pas la production)


Cela ne fonctionnerait que tel qu'il se trouve si les fichiers sont dans le bon ordre et qu'il n'y a aucune dépendance sur un fichier ultérieur pour aucun d'entre eux. Si vous numérotez les fichiers, cela fonctionnerait bien.



2
votes

Edit:

Parce que vous souhaitez exiger ou inclure plusieurs fichiers, vous pouvez utiliser cette récursive algorithme pour inclure des fichiers dans un dossier spécifié. Le dossier est la racine qui commence l'itérateur. Parce que l'algorithme est récursif, il traversera automatiquement tout Les dossiers suivants et incluent également ces fichiers. P>

public function include_all_files($root) {
    $d = new RecursiveDirectoryIterator($root);
    foreach (new RecursiveIteratorIterator($d) as $file => $f) {
        $ext = pathinfo($f, PATHINFO_EXTENSION);
        if ($ext == 'php' || $ext == 'inc')
            include_once ($file); // or require(), require_once(), include_once()
    }
}

include_all_files('./lib');


2 commentaires

Cette solution n'est que bien s'il veut charger des cours. Ainsi, ces utilitaires fonctionnent qu'il ne peut pas être dans des classes. Donc, ce n'est pas une bonne réponse, je suppose que c'est un problème. Néanmoins, c'est une intéressante pour charger des cours automatiquement.


$ D = Nouveau recursiveDirectoratorator ($ Fullpath, fichiersSystemiterator :: skip_dots); Utilisez ceci pour sauter des points