include dans fonction->perd ses variables
Je veux faire une fonction tryInclude qui à présentement la syntaxe suivante
Code:
1 2 3 4 5 6 7 8 9 10
| function tryInclude($fileName){
if (file_exists($_SERVER['DOCUMENT_ROOT'].'/extension/'.$fileName)){
include $_SERVER['DOCUMENT_ROOT'].'/extension/'.$fileName;
}
['DOCUMENT_ROOT'].'/fonction/'.$fileName))
else{
include $_SERVER['DOCUMENT_ROOT'].'/fonction/'.$fileName;
}
} |
Ce que la fonction doit faire:
si un fichier existe dans extension...faire l'include du fichier dans le dossier extension...sinon faire le include avec le fichier dans fonction
Le problème que j'ai est que si j'ai une variable dans la page maitresse et que cette variable est utilisé dans le fichier que tryInclude appele...alors cette variable n'y est plus....
Que doit-je faire pour les variables ne soient pas perdus lors de l'appele de tryInclude.
Merci
EX:
Code:
1 2 3 4
| <?
tryInclude('layout_menu-admin.php');//perd ses variables
//include 'extension/layout_menu-admin.php'; //concerve ses variables
?> |
c'est variables sont de quels types (post,get,session...)?
les variables sont des variables php -> $variables
ex: dans index.php ...on a une variable $variable que je veux utiliser dans
layout_menu-admin.php
dans le include $variable existe
mais avec mon tryInclude...$variable n'existe pas
Merci
PS: pourquoi pas <? ?
Oui surement un probleme de porter de variable...
C'est bien beau tout ces explications mais le mandat est de régler mon problème avec tryInclude...Comment modifier ma fonction tryInclude pour qu'elle agisse comme un include au niveau des variables...
Merci
Désolé les petits français ... j'ai trouvé tout seul.
Code:
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
|
function getDefinedVars($varList, $excludeList)
{
$temp1 = array_values(array_diff(array_keys($varList), $excludeList));
$temp2 = array();
while (list($key, $value) = each($temp1)) {
global $$value;
$temp2[$value] = $$value;
}
return $temp2;
}
function tryInclude($fileName,$allVariables=array()){
extract($allVariables, EXTR_PREFIX_SAME, "wddx");
if (file_exists($_SERVER['DOCUMENT_ROOT'].'/extension/'.$fileName)){
include $_SERVER['DOCUMENT_ROOT'].'/extension/'.$fileName;
}
//elseif (file_exists($_SERVER['DOCUMENT_ROOT'].'/fonction/'.$fileName))
else{
include $_SERVER['DOCUMENT_ROOT'].'/fonction/'.$fileName;
}
}
$excludeList = array('GLOBALS', '_FILES', '_COOKIE', '_POST', '_GET', 'excludeList', '_ENV','HTTP_ENV_VARS','HTTP_POST_VARS','HTTP_GET_VARS','HTTP_COOKIE_VARS','_SERVER','HTTP_SERVER_VARS','HTTP_POST_FILES','_REQUEST','HTTP_SESSION_VARS','_SESSION');//pour tryInclude
tryInclude('layout_menu-admin.php',getDefinedVars(get_defined_vars(), $excludeList)); |