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 :

[Système] Exécution de code PHP par PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de SebastienM
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 310
    Par défaut [Système] Exécution de code PHP par PHP
    Bonjour,

    Je vais commencer par expliquer le titre de mon sujet, qui n'est pas très parlant

    Contexte : Je cherche à développer un glossaire accessible (donc sans javascript) via php.
    Pour cela, je scan un fichier csv sous la forme "nom;definition" et je voudrais remplacer à la volée les mots par un lien sur toutes les pages.
    Je lis donc le fichier (htm ou php) et je l'enregistre dans une variable de type string que je parse via une expression régulière et qui me remplace le mot voulu par un lien.
    Jusque là, tout vas bien !

    Là ou ça se complique, c'est pour les pages contenant du code php : en effet, le php inclu dans une chaîne de caractère n'est pas interprété.

    Pour cela, deux solutions s'offrent à moi :
    1) Utiliser ob et eval pour forcer l'exécution : mais voilà, ça ne fonctionne pas très bien, c'est déconseillé et ça regroupe le code exécuté en 'bloc' indépendant du reste du code où il est exécuté.
    2) Enregistrer le code parsé dans un fichier temporaire, l'inclure et le supprimer : Ce n'est pas très propre, et pas très optimisé, de plus ça demande des accès disque à chaque chargement de page pour chaque visiteur...

    J'espère que vous avez saisi mon problème

    Auriez-vous une troisième solution ?

    Merci d'avance.

  2. #2
    Membre éclairé Avatar de SebastienM
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 310
    Par défaut
    C'est bon j'ai trouvé : en utilisant le buffer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // On teste si la configuration de la page nécessite de parser les mots du glossaire
                            if ($scanGlossaire == "1") {
                                // On enregistre le contenu dans un buffer avant de le parser
                                ob_start();
                                include_once($fichierPage);
                                $buffer=ob_get_contents();
                                ob_end_clean ();
                                // On affiche le contenu du buffer
                                echo $buffer;
                            //$string = parse_glossaire($fichierPage);
     
                            } else {
    						    include_once($fichierPage);
                            }

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

Discussions similaires

  1. [Système] Exécution d'un URL en php
    Par Pique dans le forum Langage
    Réponses: 3
    Dernier message: 29/12/2006, 11h46
  2. [Système] Appeler du code C en php
    Par wassim_kh dans le forum Langage
    Réponses: 7
    Dernier message: 12/07/2006, 12h47
  3. [Système] Exécuter du JS dans du PHP ?
    Par xtaze dans le forum Langage
    Réponses: 12
    Dernier message: 16/05/2006, 12h41
  4. [Système] Exécuter un programme Java en PHP
    Par sylsau dans le forum Langage
    Réponses: 10
    Dernier message: 26/04/2006, 20h02
  5. [Système] Exécuter un programme Java en PHP
    Par sylsau dans le forum Linux
    Réponses: 4
    Dernier message: 26/04/2006, 17h12

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