IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Une fonction qui déclenche l'exécution d'un autre fichier en PHP en parallèle et indépendant du premier [PHP 5.5]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Aprenti
    Inscrit en
    Mai 2015
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Aprenti

    Informations forums :
    Inscription : Mai 2015
    Messages : 199
    Points : 140
    Points
    140
    Par défaut Une fonction qui déclenche l'exécution d'un autre fichier en PHP en parallèle et indépendant du premier
    Bonjour,

    J'ai fais un condition avec switch dans mon fichier index.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    $code = '11';
    $file11 = 'code11.php';
    $file22 = 'code22.php';
     
     
     
     
     
    	switch($code)
    		{
    			case '11':
    				//Arrêter de continuer sur ce fichier et lire et exécuter le fichier code11.php
    				break;
     
    			case '22':
    				//Arrêter de continuer sur ce fichier et lire et exécuter le fichier code22.php
    				break;
     
    			default:
    				// continuer d'exécuter ce fichier
     
    				echo "<br>1re étape sans code d'exception";
    				break;
    		}
     
    		echo "<br>On continue d'exécuter le fichier index.php! : <br> C’est bon  si les valeurs du code ne sont pas 11 ou 22 sinon ce n'est pas correct!";
    Dans mon fichier, code11.php, il y a le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "execution du fichier code11.php <br>";
    et dans code22.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "execution du fichier code22.php <br>";
    Si le code est '11' --> j'aimerais exécuter le fichier code11.php sans continuer d'exécuter le reste du fichier index.php.
    Il faut seulement voir le message suivant :

    execution du fichier code11.php

    Si le code est '22' :
    execution du fichier code22.php


    Et s'il y a un autre code, par exemple 159 :

    1re étape sans code d'exception : On continue d'exécuter le fichier index.php!
    On continue d'exécuter le fichier index.php! :
    C’est bon si les valeurs du code ne sont pas 11 ou 22 sinon ce n'est pas correct!


    Si j'utilise la fonction require() ou include() avec die() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    $code = '11';
    $file11 = 'code11.php';
    $file22 = 'code22.php';
     
     
     
     
     
    	switch($code)
    		{
    			case '11':
    				//Arrêter de continuer sur ce fichier et lire et exécuter le fichier code11.php
    				//  failed to open stream: Invalid argument :
    				//fopen("G:\Vacances\code11.php", "r");
    				require($file11);
    				die();
    				break;
     
    			case '22':
    				//Arrêter de continuer sur ce fichier et lire et exécuter le fichier code22.php
    				//file_get_contents('G:\Vacances\code22.php');
    				include ($file22);
    				die();
    				break;
     
    			default:
    				// continuer d'exécuter ce fichier
     
    				echo "<br>1re étape sans code d'exception : On continue d'exécuter le fichier index.php!";
    				break;
    		}
     
    		echo "<br>On continue d'exécuter le fichier index.php! : <br> C’est bon  si les valeurs du code ne sont pas 11 ou 22 sinon ce n'est pas correct!";
    Cela marche bien. Mais je ne pense pas que c'est une bon solution. Parce que si la valeur de mon variable $code vient d'une tableau (array)....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    $file11 = 'code11.php';
    $file22 = 'code22.php';
    $codes = array(22, 11, 457, 159);
     
    foreach ($codes as $code) {
    	switch($code)
    			{
    				case '11':
    					require($file11);
    					die();
    					break;
     
    				case '22':
    					include ($file22);
    					die();
    					break;
     
    				default:
    					// continuer d'exécuter ce fichier
     
    					echo "<br>1re étape sans code d'exception : On continue d'exécuter le fichier index.php!";
    					break;
    			}
     
    	echo "<br>On continue d'exécuter le fichier index.php! : <br> C’est bon  si les valeurs du code ne sont pas 11 ou 22 sinon ce n'est pas correct!";
    	}
    À cause de die(), après le premier cas de code [22] on arête le traitement et il y a seulement le message suivant :
    execution du fichier code22.php
    C’est normal! Et si j'enlève die() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    $file11 = 'code11.php';
    $file22 = 'code22.php';
    $codes = array(22, 11, 457, 159);
     
    foreach ($codes as $code) {
    	switch($code)
    			{
    				case '11':
    					require($file11);
    					//////   die();
    					break;
     
    				case '22':
    					include ($file22);
    					//////   die();
    					break;
     
    				default:
    					// continuer d'exécuter ce fichier
     
    					echo "<br>1re étape sans code d'exception : On continue d'exécuter le fichier index.php!";
    					break;
    			}
     
    	echo "<br>On continue d'exécuter le fichier index.php! : <br> C’est bon  si les valeurs du code ne sont pas 11 ou 22 sinon ce n'est pas correct!";
    	}
    Et ce qui s'affiche :
    execution du fichier code22.php
    On continue d'exécuter le fichier index.php! :
    C’est bon si les valeurs du code ne sont pas 11 ou 22 sinon ce n'est pas correct!

    execution du fichier code11.php
    On continue d'exécuter le fichier index.php! :
    C’est bon si les valeurs du code ne sont pas 11 ou 22 sinon ce n'est pas correct!


    1re étape sans code d'exception : On continue d'exécuter le fichier index.php!
    On continue d'exécuter le fichier index.php! :
    C’est bon si les valeurs du code ne sont pas 11 ou 22 sinon ce n'est pas correct!


    1re étape sans code d'exception : On continue d'exécuter le fichier index.php!
    On continue d'exécuter le fichier index.php! :
    C’est bon si les valeurs du code ne sont pas 11 ou 22 sinon ce n'est pas correct!
    Comment puis-je faire pour que lorsqu'il y a le code 11 ou 22, il faille revenir au début du fichier index.php au lieu de continuer l'exécution du fichier index.php

    Autrement dit il faudrait obtenir le message suivant :
    execution du fichier code22.php



    execution du fichier code11.php



    1re étape sans code d'exception : On continue d'exécuter le fichier index.php!
    On continue d'exécuter le fichier index.php! :
    C’est bon si les valeurs du code ne sont pas 11 ou 22 sinon ce n'est pas correct!




    1re étape sans code d'exception : On continue d'exécuter le fichier index.php!
    On continue d'exécuter le fichier index.php! :
    C’est bon si les valeurs du code ne sont pas 11 ou 22 sinon ce n'est pas correct!
    Est-ce qu'il faut utiliser une autre fonction ?
    Une fonction qui déclenche l'exécution d'un autre fichier en PHP en parallèle et indépendant d'index.php ?

    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu n'as qu'a mettre la suite du code dans un autre fichier et avoir ainsi la même logique dans les 3 cas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    foreach ($codes as $code) {
    	switch($code)	{
    				case '11':
    					require($file11);
    					break;
     
    				case '22':
    					include ($file22);
    					break;
     
    				default:
                                            include('suite_traitement.php');
    					break;
    	}
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Homme Profil pro
    Aprenti
    Inscrit en
    Mai 2015
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Aprenti

    Informations forums :
    Inscription : Mai 2015
    Messages : 199
    Points : 140
    Points
    140
    Par défaut
    Salut sabotage,
    C'est simple que cela !

    Bravo et Excelent.

    Merci cette idée sympa et simple

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/01/2009, 11h49
  2. Créer une fonction mathématique pendant l'exécution
    Par zeprogrameur dans le forum Langage
    Réponses: 5
    Dernier message: 09/07/2004, 11h36
  3. Réponses: 14
    Dernier message: 09/04/2004, 13h44
  4. [VB6] Comment faire une fonction qui renvoie 2 résultats
    Par tazarine dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/01/2004, 00h13
  5. [langage] Creer une fonction qui met en majuscule ?
    Par Cyber@l dans le forum Langage
    Réponses: 6
    Dernier message: 04/12/2003, 18h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo