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 :

Inhibition d'un echo


Sujet :

Langage PHP

  1. #1
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut Inhibition d'un echo
    Bonjour,

    à tout hasard est-il possible d'inhiber un echo ?

    Actuellement, voici une fonction minimaliste que j'essaye de rendre le plus évolutive possible en donnant la possibilité quelle retourne soit un booléen ou affiche du texte...
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function test($bEcho=TRUE) {
       $n = 0;
       if ($bEcho) echo 'aaaaaaaaaaaaaaaaa';
       $n++;
       if ($bEcho) echo 'bbbbbbbbbbbb';
       $n++;
       if ($bEcho) echo 'cccccc';
       $n++;
     
       if ( !$bEcho) return $n;
    }
    que j'aimerais transformer un peu sous cette forme :
    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
    function test($bEcho=TRUE) {
     
       echo_enabled( $bEcho );
     
       $n = 0;
       echo 'aaaaaaaaaaaaaaaaa';
       $n++;
       echo 'bbbbbbbbbbbb';
       $n++;
       echo 'cccccc';
       $n++;
     
       echo_enabled(TRUE);
     
       if ( !$bEcho) return $n;
    }
    où ici echo_enabled() serait une fonction de configuration temporaire du PHP, un peu à la manière d'un display_errors().

    ... je sais que c'est un peu tiré par les cheveux mais bon... c'est une idée que j'aimerais exploter pour mes futurs scripts.

    @+

  2. #2
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    Je confirme, c'est un peu tiré par les cheveux... Eventuellement, tu peux utiliser les fonctions de bufferisation ob_*... (http://php.net/ref.outcontrol)

    Ou mieux, supprimer ton echo et passer par une variable intermédiaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function test($bEcho=TRUE) {
       $texte = '';
       $n = 0;
       $texte .= 'aaaaaaaaaaaaaaaaa';
       $n++;
       $texte .= 'bbbbbbbbbbbb';
       $n++;
       $texte .= 'cccccc';
       $n++;
     
       if ($bEcho) echo $texte;
       if ( !$bEcho) return $n;
    }

  3. #3
    Membre habitué Avatar de cynferdd
    Profil pro
    Analyste Développeur .Net, PHP, SQL Server
    Inscrit en
    Avril 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Développeur .Net, PHP, SQL Server

    Informations forums :
    Inscription : Avril 2003
    Messages : 154
    Points : 190
    Points
    190
    Par défaut
    il ne me semble pas qu'il existe de fonction pour empêcher echo de se faire (et après une recherche sur php.net et google je n'ai rien trouvé).

    Il faudra juste que tu fasse en sorte de ne mettre tes echos que quand tu veux qu'ils apparaissent.

    Je ne pense pas que tu te retrouves à un moment avec un cas où tu ne puisse pas le faire

  4. #4
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Citation Envoyé par cynferdd Voir le message
    il ne me semble pas qu'il existe de fonction pour empêcher echo de se faire (et après une recherche sur php.net et google je n'ai rien trouvé).
    Si, avec les fonctions de bufferisation (voir message précédent), c'est possible : il suffit d'utiliser ob_start(); au début et ob_end_clean(); à la fin...

    (pour le reste du message, je suis assez d'accord !)

  5. #5
    Membre habitué Avatar de cynferdd
    Profil pro
    Analyste Développeur .Net, PHP, SQL Server
    Inscrit en
    Avril 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Développeur .Net, PHP, SQL Server

    Informations forums :
    Inscription : Avril 2003
    Messages : 154
    Points : 190
    Points
    190
    Par défaut
    oulah oui en effet je n'avais pas pensé à passer par là.
    J'aurai appris quelque chose aujourd'hui tiens

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

Discussions similaires

  1. Comment ecrire sur la meme ligne avec la commane ECHO
    Par juflata dans le forum Windows
    Réponses: 3
    Dernier message: 24/11/2015, 10h06
  2. Comment aller a la ligne avec la commande ECHO
    Par juflata dans le forum Windows
    Réponses: 3
    Dernier message: 23/06/2004, 18h11
  3. probleme d' echo dans un batch
    Par zorian dans le forum Windows
    Réponses: 16
    Dernier message: 18/05/2004, 18h21
  4. [HARDWARE]Problème d'écho audio
    Par Tostaki dans le forum Composants
    Réponses: 5
    Dernier message: 08/12/2003, 00h38
  5. Envoyer un message icmp (Echo Request)
    Par ovdz dans le forum Développement
    Réponses: 5
    Dernier message: 19/06/2003, 15h14

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