Forum d'entraide PHPFrance

Venez poser vos questions PHP, MySQL, HTML, CSS, Javascript, Gestion de serveurs à la communauté PHPfrance

Vers le contenu

» Masquer les résultats de la recherche

Recherche dynamique PHPfrance

  1. Effectuez une recherche, les résultats s'afficheront dynamiquement ici.

Savoir si un fichier est utilisé dans un include ou pas

Pour les initiés, les confirmés, les experts, les gourous... voire plus.

Savoir si un fichier est utilisé dans un include ou pas

Messagepar pol2095 02 Fév 2012, 17:44

Bonjour,

est-il possible de savoir si un fichier php est utilisé dans un include ou pas ?

merci
pol2095
Embryon
 
Messages: 14
Inscription: 15 Mai 2010, 10:11

Publicité

Re: Savoir si un fichier est utilisé dans un include ou pas

Messagepar xTG 02 Fév 2012, 17:56

Savoir si un fichier a été inclu auparavant ou non ?
Ou bien savoir si un fichier est ouvert en lecture ou écriture ?

Pour le premier il n'existe pas de fonction. Mais pour éviter les erreurs il faut utiliser include_once() ou require_once().
Ainsi si le fichier a déjà été inclu il ne le sera pas la seconde fois et cela ne déclenchera pas de warning.
xTG
ViPHP
ViPHP
 
Messages: 4063
Inscription: 03 Aoû 2010, 19:12

Re: Savoir si un fichier est utilisé dans un include ou pas

Messagepar Shenryu 02 Fév 2012, 18:02

Salut,

xTG a écrit:Pour le premier il n'existe pas de fonction.

En fait si, il existe la fonction get_included_files() : http://php.net/manual/fr/function.get-i ... -files.php

Cela ne reste à utiliser qu'en cas de besoin spécifique. Si c'est juste pour éviter les erreurs d'inclusion, les fonctions include_once et require_once sont faites pour ça comme l'a dit xTG.
Elles sont néanmoins très lentes (de l'ordre de 30% plus qu'un include ou require il me semble) donc à n'utiliser que pour les fichiers pouvant être inclus plusieurs fois.

Si c'est une question de chargement de fichiers, tu peux aussi regarder du côté de l'auto-loading ;)

++
Shenryu
J'ai codé une fonction !
 
Messages: 205
Inscription: 25 Aoû 2005, 21:09

Re: Savoir si un fichier est utilisé dans un include ou pas

Messagepar pol2095 02 Fév 2012, 18:13

avec get_included_files, le premier fichier retourné est-il toujours le nom du fichier affiché dans la barre d'adresse du navigateur ?
pol2095
Embryon
 
Messages: 14
Inscription: 15 Mai 2010, 10:11

Re: Savoir si un fichier est utilisé dans un include ou pas

Messagepar Shenryu 02 Fév 2012, 18:16

Oui, ça me semblerait logique puisqu'il s'agit du premier fichier appelé.

Mais quel est ton besoin ? C'est juste de récupérer le nom de ton fichier appelé dans l'URL ?
Shenryu
J'ai codé une fonction !
 
Messages: 205
Inscription: 25 Aoû 2005, 21:09

Re: Savoir si un fichier est utilisé dans un include ou pas

Messagepar xTG 02 Fév 2012, 18:18

Ah je connaissais pas cette fonction, intéressante. :P
xTG
ViPHP
ViPHP
 
Messages: 4063
Inscription: 03 Aoû 2010, 19:12

Re: Savoir si un fichier est utilisé dans un include ou pas

Messagepar pol2095 02 Fév 2012, 18:27

c'est pour des raisons de sécurité, je ne veux pas qu'on se connecte au fichier qui est inclus directement.
pol2095
Embryon
 
Messages: 14
Inscription: 15 Mai 2010, 10:11

Re: Savoir si un fichier est utilisé dans un include ou pas

Messagepar moogli 02 Fév 2012, 18:28

d'après la doc oui
doc php a écrit:Exemple #1 Exemple avec get_included_files()
Syntaxe: [ Télécharger ] [ Masquer ]
Code php
<?php
// Ce fichier est abc.php

include 'test1.php';
include_once 'test2.php';
require 'test3.php';
require_once 'test4.php';

$included_files = get_included_files();

foreach ($included_files as $filename) {
    echo "$filename\n";
}

?>


L'exemple ci-dessus va afficher :

abc.php
test1.php
test2.php
test3.php
test4.php



regarde plutôt le request uri dans $_SERVER

@+
Il en faut peu pour être heureux ......
moogli
ViPHP
ViPHP
 
Messages: 3698
Inscription: 06 Juil 2006, 17:23
Localisation: gwened bzh

Re: Savoir si un fichier est utilisé dans un include ou pas

Messagepar xTG 02 Fév 2012, 19:03

pol2095 a écrit:c'est pour des raisons de sécurité, je ne veux pas qu'on se connecte au fichier qui est inclus directement.

Dans ce cas définir une constante serait mieux...

Syntaxe: [ Télécharger ] [ Masquer ]
Code php
<?php
if( !defined('MA_CONSTANTE') )
  exit();

Et bien sûr la définition de la constante dans la page qui inclue toutes les autres.
xTG
ViPHP
ViPHP
 
Messages: 4063
Inscription: 03 Aoû 2010, 19:12

Re: Savoir si un fichier est utilisé dans un include ou pas

Messagepar pol2095 02 Fév 2012, 20:01

est-il possible de récupérer le nom du fichier inclus, avec $_SERVER["PHP_SELF"], on récupère le nom du fichier qui inclut même si on le met dans la page incluse.
Comment récupérer le nom du fichier inclus ?
pol2095
Embryon
 
Messages: 14
Inscription: 15 Mai 2010, 10:11

Re: Savoir si un fichier est utilisé dans un include ou pas

Messagepar xTG 02 Fév 2012, 20:19

L'index PHP_SELF c'est le nom de la page appelée, pas d'un script inclus. C'est en quelque sorte le script parent de tous les autres.
Pour les scripts inclus c'est la fonction précédemment donnée.
xTG
ViPHP
ViPHP
 
Messages: 4063
Inscription: 03 Aoû 2010, 19:12

Re: Savoir si un fichier est utilisé dans un include ou pas

Messagepar Calimero 03 Fév 2012, 19:03

D'après le manuel, debug_backtrace() permet aussi de savoir si on se trouve dans un fichier inclus ou un fichier maître.

http://fr2.php.net/manual/en/function.d ... .php#97508
if(!@work()){ Nespresso(); } else { what(); }
______________________________
Avatar de l’utilisateur
Calimero
ViPHP
ViPHP
 
Messages: 2201
Inscription: 28 Juin 2007, 16:15
Localisation: Paris


Retourner vers PHP avancé

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 13 invités

  • Publicité