2010-04-22 9 views

Répondre

11

Habituellement, vous n'utilisez pas une expression régulière.

Ce qui suit est une méthode populaire à la place:

$extension=pathinfo($filename, PATHINFO_EXTENSION); 
2
/\.php$/ 

Mais le mappage d'extension ne garantit pas que le contenu est ce que vous attendez, mais simplement qu'un fichier est nommé d'une manière particulière.

+0

Bon point. Il y a beaucoup d'autres extensions de fichiers qui indiquent le contenu de PHP: .module, .inc, .test, .install, etc. – David

5

pathinfo est la solution la plus simple, mais vous pouvez également utiliser fnmatch

if(fnmatch('*.php', $filename)) { /* do something */ } 

EDIT: comme des points @zombat sur dans les commentaires, si vous êtes après une solution rapide, alors la f uite est plus rapide que l'utilisation pathinfo et fnmatch:

if(substr($filename, -4) === '.php') { /* do something */ } 

Gardez à l'esprit que pathinfo, contrairement fnmatch et substr-t un basename contrôle sur le chemin que vous fournissez, ce qui le rend un peu plus propre à mon avis.

+1

En ce qui concerne la vitesse, fnmatch va surpasser pathinfo 2: 1 lorsqu'il est utilisé à cette fin. – webbiedave

+0

Selon quelles preuves? – zaf

+0

@Gordon pathinfo nécessite un fichier i/o ??? tu tire ma jambe...? – zaf

Questions connexes