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 :

alternative à glob() pour includes


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut alternative à glob() pour includes
    bonjour,
    je cherche depuis quelques heures une solution pour remplacer la fonction glob() pour faire des includes sur un site hébergé chez free.
    ceci ne fonctionne donc pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    		define("PATH", "./includes/");
                    // Tableau contenant les pages autorisées
                    $tableau = glob(PATH . "*.inc.php");
     
                    if (isset($_GET["page"]) && in_array(PATH . $_GET["page"] . ".inc.php", $tableau)) {
                        $pageInclude = PATH . $_GET["page"] . ".inc.php";
                    }
                    else {
                        $pageInclude = PATH .  "default.inc.php";
                    }
                    include $pageInclude;
    ?>
    Warning: in_array() [function.in-array]: Wrong datatype for second argument in ...
    et ceci non plus
    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
    17
    <?php
              define("PATH", "./includes/");
              // Tableau contenant les pages autorisées
              $tableau = glob(PATH . "*.inc.php");
    	$d = dir("PATH"); 
              while($entry = $d->read()) { 
                $tab = explode(".inc.php",$entry); 
                $tableau[] = $tab[0]; 
              } 
                    if (isset($_GET["page"]) && in_array(PATH . $_GET["page"] . ".inc.php", $tableau)) {
                        $pageInclude = PATH . $_GET["page"] . ".inc.php";
                    }
                    else {
                        $pageInclude = PATH .  "default.inc.php";
                    }
                    include $pageInclude;
                ?>
    Warning: dir(PATH) [function.dir]: failed to open dir: No such file or directory in ...
    Fatal error: Call to a member function on a non-object in ...
    bref, je me tourne vers vous, j'ai besoin d'aide
    un grand merci

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    La fonction glob() étant assez gourmande en ressources, Free a cru sembler bon de la désactiver sur ses serveurs mutualisés. Ta première solution reste valable sur un serveur non hébergé par Free.

    Tu peux utiliser en revanche la fonction opendir() et l'utiliser comme ça :

    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
    define( 'PATH', './includes/' );
     
    if ( $directory = opendir( PATH ) ) {
      while ( ( $file = readdir( $directory ) ) !== false ) {
          $tableau[] = $file;
      }
    }
     
    if ( isset( $_GET['page'] ) && in_array( $_GET['page'] . '.inc.php', $tableau ) ) {
       $pageInclude = PATH . $_GET['page'] . '.inc.php';
    }
    else {
       $pageInclude = PATH . 'default.inc.php';
    }
     
    include( $pageInclude );

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/11/2010, 21h31
  2. [Wiki] Alternative à Wikimedia pour documentations Web
    Par pastamiam dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 24/06/2009, 14h22
  3. Réponses: 6
    Dernier message: 11/03/2009, 11h26
  4. Rangement de dossier pour include
    Par orphen dans le forum Langage
    Réponses: 1
    Dernier message: 26/03/2007, 11h21
  5. [Système] Alternative à PHP pour les uploads HTTP
    Par superjun dans le forum Langage
    Réponses: 2
    Dernier message: 07/07/2006, 23h29

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