2010-04-22 3 views

ответ

11

Обычно вы не используете регулярное выражение.

Следующая популярный метод вместо:

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

, но расширение отображения не гарантирует, что контент является тем, что вы ожидаете, так что файл назван определенным образом.

+0

Хорошая точка. Существует много других расширений файлов, которые указывают на содержимое PHP: .module, .inc, .test, .install и т. Д. – David

5

pathinfo является самым простым решением, но вы также можете использовать fnmatch

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

EDIT: Like @zombat баллов из в комментариях, если вы после быстро решение, то следующий быстрее, чем при использовании pathinfo и fnmatch:

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

Имейте в виду, что pathinfo, в отличие от fnmatch и substr делает basename проверку на пути вы предоставляете, что делает его немного чище, на мой взгляд.

+1

Что касается скорости, fnmatch выйдет из режима pathinfo 2: 1 при использовании для этой цели. – webbiedave

+0

На основании каких доказательств? – zaf

+0

@Gordon pathinfo требует файла i/o ??? вы тянете мою ногу ...? – zaf

Смежные вопросы