executer tous les *.php

HD
Mammouth du PHP | 1181 Messages

23 août 2005, 13:15

salut
j'ai besoin d'un script qui execute tous les fichiers php qu'il trouve dans un dossier
c'est possible ? et si oui comment depasser la contrainte de 30secondes (sans utiliser set time limit) car chaque fichier fait pres de 20secondes
merci

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

23 août 2005, 14:26

ou tu le lances en ligne de commande, via un exec() par exemple

HD
Mammouth du PHP | 1181 Messages

23 août 2005, 18:33

non car ca ne marche pas si l'hebergeur est en safe mode
alors une reponse a ma question svp ?

Mammouth du PHP | 19672 Messages

23 août 2005, 18:52

:idea: J'aurais bien une idée, mais c'est lourdingue.

Fais une fonction qui liste les fichiers PHP de ton répertoire: à partir de cette liste, crée un fichier temporaire .php avec autant de lignes d'instructions qu'il y a de fichiers (Mais pas dans une boucle bien sur, sinon, ça marchera apa) et que chaque ligne exécute son fichier individuellement, une ligne après l'autre. À la fin, ajoute un header vers un autre fichier qui exécute un unlink sur ce fichier temporaire et le tour est joué.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1885 Messages

23 août 2005, 18:57

Bonjour,

Selon moi, et d'après un script que j'ai vu qui permettait de contourner ce problème, tu peux générer un fichier spécial qui exécutera chacun de tes fichiers et lorsque termine, il fera une redirection HTML vers le suivant et ainsi de suite. Ainsi, la limite n'est jamais atteinte puisqu'une nouvelle exécution se fait à chaque fois.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Mammouth du PHP | 19672 Messages

23 août 2005, 19:01

Mouais, c'est le même principe, suaf que ça risque de faire beaucoup de fichiers là où je n'en fais qu'un seul :-k :?:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

HD
Mammouth du PHP | 1181 Messages

23 août 2005, 19:03

Bonjour,

Selon moi, et d'après un script que j'ai vu qui permettait de contourner ce problème
tu l'as ce script ou un lien stp ?

Mammouth du PHP | 19672 Messages

23 août 2005, 19:09

Ben non, mais tu l'as toi-même: tu as une ligne qui lance l'exécution d'un des fichiers ? Ben fais une liste des fichiers avec une petite fonction en enregistrant les noms de fichiers dans un tableau indexé. Ensuite, crée un fichier avec fopen() (en mode w bien sur) et dans une boucle écris la ligne qui exécute le fichier en recommançant pour chacun des fichiers. Après la boucle, ajoute un header qui pointe vers un autre fichier (à créer) qui contient une commande unlink() pour supprimer le fichier temporaire créé et un header vers une page à afficher.

Est-ce que tu te représentes shématiquement l'idée ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1885 Messages

23 août 2005, 19:29

Bonjour,

Cyrano, il n'y a aucunement besoin de créer des fichiers temporaires. Je ne vois pas d'où tu as pu tirer cette idée. Le but est d'exécuter une série de fichiers se trouvant dans un répertoire donné. Pourquoi alors refaire des fichiers temporaires pour exécuter ces même fichiers?

Il suffirait de créer un seul fichier qui se chargerait d'exécuter tous les fichiers existants:
<?php
echo '<h1>Exécution automatique</h1>';

if (FALSE === ($files = glob("./exec/*.php"))) {
	exit('Répertoire inexistant');
}

$file = isset($_GET['file']) ? intval($_GET['file']) : 0;

if (FALSE == isset($files[$file])) {
	exit('Fin de l\'exécution');
}

include($files[$file]);

header('Refresh:2;url=exec.php?file=' . ++$file);
?>
Et ce script fonctionne puisque je viens de le créer et tester.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Mammouth du PHP | 19672 Messages

23 août 2005, 19:40

L'idée du fichier temporaire est que, si ces fichiers sont applés à changer en nombre, voire à être remplacés par d'autres avec des noms différents.
Mais si ce sont toujours les mêmes fichiers, alors effectivement, un fichier en dur fera l'affaire et on court-circuite le listage des fichiers du répertoire.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1885 Messages

23 août 2005, 19:43

Bonjour,

Je ne vois pas toujours leurs utilités. Peu importe le changement de nom, cela ne changera pas au fait que tu devras les connaitre pour les éxécuter. Et ce que le script précédent fait : il récupère dynamiquement les fichiers présents dans le répertoire et les exécute.

Sincèrement, je ne comprends pas trop le pourquoi de la création de ces fichiers. Un seul fichier maitre responsable de leur appel fait entièrement le travail. Alors il faudrait peut-être réviser ta copie.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

HD
Mammouth du PHP | 1181 Messages

23 août 2005, 19:46

merci a tous je vous tiens au courant
en attendant s'il y a des complements d'infos je suis preneur !