2010-06-21 6 views
1

Mon environnement de système d'exploitation est Linux.Autre moyen d'obtenir le dossier dont le nom suit un modèle dans php

Je dispose d'un fichier php dans ce dossier -/var/www/html (par exemple ... test.php)

J'ai aussi un dossier appelé DATA_SOMENUMBERHERE dans le même répertoire.

À l'intérieur de test.php, j'ai besoin de trouver la SOMENUMBEREHERE. En d'autres termes, recherchez le dossier dont le nom commence par DATA_ et obtenez le reste de la chaîne.

Une façon de le faire est, obtenir tous les noms de dossiers dans ce répertoire et boucle à travers eux et découvrir.

Mais y a-t-il un autre moyen? Puis-je passer une sorte d'expression rationnelle à un appel de fonction de système de fichiers afin que tous les noms de dossier correspondent à ce modèle?

Un appel de fonction unique sera idéal. Mais si aucun n'est disponible, je suis d'accord pour boucler.

Hypothèses sûres:

  • Il y aura toujours un dossier qui commence par data_

  • Il n'y aura qu'un seul dossier qui commence par data_

  • SOMENUMBERHERE sera changer continuellement.

Répondre

3

Jetez un oeil à glob() qui retourne un tableau de fichiers/répertoires qui correspondent à un modèle. L'option GLOB_ONLYDIR vous permet de rechercher uniquement les répertoires correspondant au modèle. Ainsi, par exemple:

$dirs = glob('DATA_*', GLOB_ONLYDIR); 
//$dirs[0] now holds the name of the directory. 

Si vous êtes sûr du fait qu'il y aura un répertoire là, vous pouvez utiliser aussi utiliser list pour raccourcir le code légèrement.

list($dir) = glob('DATA_*', GLOB_ONLYDIR); 
//$dir now holds the name of the directory. 
+0

Hey! :) deux pour un ... merci pour glob() et list() –

Questions connexes