Accueil > Forum > > > > Buffer et variables au sein d'une fonction
Buffer et variables au sein d'une fonction
lundi 2 juillet 2007 à 15:34:52 |
Buffer et variables au sein d'une fonction

Ordinastie
|
Bonjour,
J'ai une classe permettant l'affichage d'un cadre plus ou moins grahique autour d'un contenu. Pour chaque chaque cadre j'appelle une méthode pour la définition du contenu que je passe en paramètre (simple string). J'ai voulu amélioré ma méthode pour qu'elle détecte si la string passée en paramètre correspond à un fichier, et si c'est le cas, elle récupère le contenu du fichier.
public
function
SetContent(
$c
) { if(is_file($c
)) { ob_start
(); require($c
); $c = ob_get_contents
(); ob_end_clean
(); } $this->_contents = $c
; }
Mon problème, c'est que le contexte d'exécution du fichier inclu, c'est la méthode, et donc les variable du fichier ne sont pas initialisés. Donc existe-t-il un moyen pour que si je fais:
$cadre
=
new
Cadre(); $i
= 10; $cadre->SetContent('myfile.php'
);
dans myfile.php on ait $i = 10 ?
Merci d'avance @+ Ordinastie.
|
|
lundi 2 juillet 2007 à 18:34:53 |
Re : Buffer et variables au sein d'une fonction

coucou747
|
Salut global $i; avant ton require une recherche sur exalead vous aurait peut-etre evite de poser cette questionIn a dream, I saw me, drop dead... U were there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy
|
|
lundi 2 juillet 2007 à 18:49:07 |
Re : Buffer et variables au sein d'une fonction

Ordinastie
|
Salut,
Oui, effectivement, ça, ca marche. Mais ça marche à condition de connaître toutes les variables calculées avant et nécessitées pendant. Et quand bien même, c'est pas trop le but recherché de spécifier avant chaque utilisation de variable qu'il est en global.
Mais je suis pas spécialement convaincu que ce que je veux faire, soit faisable :)
@+ Ordinastie
|
|
lundi 2 juillet 2007 à 18:53:30 |
Re : Buffer et variables au sein d'une fonction

coucou747
|
Salut c'est faisable, t'as une truc qui permet de lister toutes les variables utilises, mais je ne m'en souviens plus une recherche sur exalead vous aurait peut-etre evite de poser cette questionIn a dream, I saw me, drop dead... U were there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy
|
|
lundi 2 juillet 2007 à 22:50:14 |
Re : Buffer et variables au sein d'une fonction

Flachy Joe
|
Il existe get_defined_vars qui renvoi un tableau de toutes les variables.
 Flachy Joe  Ta vie t'est prêtée, fais en un cadeau.
|
|
mardi 3 juillet 2007 à 11:51:49 |
Re : Buffer et variables au sein d'une fonction

Ordinastie
|
Ah, j'y ai presque cru :)
Malheureusement, selon le manuel Php :
get_defined_vars() retourne un tableau multidimensionnel contenant la liste de toutes les variables définies, qu'elles soient des variables d'environnement, de serveur ou définies par l'utilisateur dans la portée d'appel de la fonction get_defined_vars().
Donc je n'ai accès qu'aux variables de la méthode. :( Je suis de moins en moins convaincu que l'on puisse overrider le contexte d'exécution d'un fonction, alors en attendant, je fais comme ca:
Dans la classe :
public
function
StartContent()
{
ob_start(); }
public
function EndContent()
{
$c = ob_get_contents();
ob_end_clean();
$this->_contents = $c;
}
L'appel :
$cadre
=
new
Cadre(
'Mon cadre'
);
$cadre
->StartContent();
require
(
'myfile.php'
);
$cadre
->EndContent();
C'est pas vraiment ce que j'aurai voulu, mais je crois que j'ai pas trop le choix là :) Si quelqu'un a d'autres idées, je suis preneur!
@+ Ordinastie.
|
|
mardi 3 juillet 2007 à 18:19:36 |
Re : Buffer et variables au sein d'une fonction

Flachy Joe
|
Réponse acceptée !
Et si tu faisait $cadre = new Cadre('Mon cadre'); $cadre->SetContent('myfile.php' , get_defined_vars()); Et une redefinition des variables du 2d paramètre dans le corps de SetContent.
 Flachy Joe  Ta vie t'est prêtée, fais en un cadeau.
|
|
mardi 3 juillet 2007 à 21:47:16 |
Re : Buffer et variables au sein d'une fonction

Ordinastie
|
Ah ouais! Pas con, j'aurai du y penser ^^ Bon, j'essaye ça demain, je te dirai comment ça se passe :)
|
|
mercredi 4 juillet 2007 à 11:01:49 |
Re : Buffer et variables au sein d'une fonction

Ordinastie
|
Réponse acceptée !
Bon, en regardant ce que donnait le get_defined_vars() , je me suis rendu compte d'une autre chose étonnante et j'ai l'impression que c'est pas trop normal: la variable $GLOBALS contient déjà toutes les variables utilisées, et pas seulement celles qui doivent être en global, et c'est pas ce à quoi je m'attendais... Donc finalement je m'en suis servi, plutot que d'avoir a passer systématiquement la fonction en get_defined_vars() paramètre. Le code est devenu :
publicfunction SetContent($_content_) { if(is_file($_content_)) { /* if(!$vars || !is_array($vars)) trigger_error('<b>Array</b> expected as 2nd parameter but got <b>' . gettype($vars) . '</b>', E_USER_ERROR); */ $ignore = array('GLOBALS', '_ENV', 'HTTP_ENV_VARS', '_POST', 'HTTP_POST_VARS', '_GET', 'HTTP_GET_VARS', '_COOKIE', 'HTTP_COOKIE_VARS', '_SERVER', 'HTTP_SERVER_VARS', '_FILES', 'HTTP_POST_FILES', '_REQUEST', 'HTTP_SESSION_VARS', '_SESSION', '_content_'); // sinon le path est overridé par le global si elle existe déja
foreach($GLOBALS AS $k => $w) if(!in_array($k, $ignore)) global$$k;
ob_start(); require($_content_); $_content_ = ob_get_contents(); ob_end_clean(); } $this->_contents = $_content_; }
Any suggestions ?
@+ Ordinastie.
|
|
mercredi 4 juillet 2007 à 18:54:13 |
Re : Buffer et variables au sein d'une fonction

Flachy Joe
|
$GLOBAL est défini comme un tableau superglobal regroupant toutes les variables du contexte global et donc le mot clef global (qui sert à faire corespondre une variable globale avec une variable locale ayant le même nom) n'a aucune incidence sur son contenu. $GLOBAL contient toutes les variables définies en dehors des fonctions, même celles définient dans des inclusions et tant que ces inclusions sont faites au niveau global.  Flachy Joe  Ta vie t'est prêtée, fais en un cadeau.
|
|
Cette discussion est classée dans : fichier, contenu, cadre, méthode, ob
Répondre à ce message
Sujets en rapport avec ce message
Comment afficher le contenu d'un fichier texte dans une page? [ par truckracing ]
Bonjour. Je débute tout juste dans le PHP, et j'ai déjà un pb...Je suis en train de traduire mon site (www.coursesdecamions.com) en anglais, et j'ai d
vider le contenu d'un fichier [ par Clonk ]
Bonjour,Ne pouvant pas utiliser de BDD, je dois me contenter d'un fichier texte pour mes référencements, le problème est que, si j'arrive à écrire et
affichage contenu fichier Word [ par Kensin4 ]
Bonjour à tous, Je voudrais savoir comment on peut afficher le contenu d'un fichier word dans une page html.Merci de m'éclairer.
Executer le contenu d'une variable [ par ilvec ]
Bonjour à tous,tout d'abord, merci de lire (et peut-être de répondre) ma questionVoici mon problème : dans un fichier, j'ai tout plusieurs lignes cont
fichier texte ds texte area [ par kinooo ]
comment afficher le contenu d'un fichier txt ds un texte area?et récup"rer ce contenu pour ecraser et copier dans le fichier txt?merci
fichier texte ds texte area [ par kinooo ]
comment afficher le contenu d'un fichier txt ds un texte area?et récup"rer ce contenu pour ecraser et copier dans le fichier txt?merci
recupérer contenu textearea ds fichier txt [ par kinooo ]
Comment récupérer le contenu d'un textearea et le mettre ds un fichier txt.
Réccupérer variables POST pour Include [ par khyor ]
Bonjour,Pour l'administration de mon site, j'ai réuni dans un même fichier (admin.php), les différentes actions (ajouter, modifier, supprimer un utili
Upload par méthode GET [ par Blacknight91 ]
Bl@cknightBonjour,Je voudrais uploader directement des fichiers sans passer par un formulaire. Est ce possible ?En fait l'url contiendrait directement
Récupération contenu d'un fichier [ par repier ]
Bonjour,Je souhaiterais recuperer le contenu d'un fichier php (du type fichier.php?val=toto) dans une variable, à partir d'un script php mais en apell
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
XML ET PHPXML ET PHP par karouani
Cliquez pour lire la suite par karouani RE : GOOGLE MAPRE : GOOGLE MAP par inwebo
Cliquez pour lire la suite par inwebo
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|