У меня есть такие вот функции в моем фреймворке/проекте: Код (Text): /** * Get the File extension. * * <code> * echo File::ext('filename.txt'); * </code> * * @param string $filename The file name * @return string */ public static function ext($filename){ // Redefine vars $filename = (string) $filename; // Return file extension return substr(strrchr($filename, '.'), 1); } /** * Get the File name * * <code> * echo File::name('filename.txt'); * </code> * * @param string $filename The file name * @return string */ public static function name($filename) { // Redefine vars $filename = (string) $filename; // Return filename return basename($filename, '.'.File::ext($filename)); } Столкнулся вот с такой проблемой: Например функция/метод ext() покажет на такой файл index.view.php возвращает расширение - php . Но на деле я имею .view.php и это должен получить Не хочется хардкодить, у кого нибудь какие то идеи есть?
расширение у файла может быть лишь одно, так что код работает верно, расширение - .php но если нужно получать именно ".view.php", то нужно изменить код - получать не расширение файла, а его имя и обрезать текст до первой встречной "." (точки) тогда будет определять index.view.php как .view.php
вопрос в том что бы избежать хардкода... не создавать же еще одну отдельную функцию которая будет за расширение считать .view.php и такой формат мне возвращать...
вы и так "хардкодите" http://www.php.ru/manual/function.filetype.html - получить расширение файла (вы написали велосипед) http://www.php.ru/manual/function.basename.html - получить имя файла получить "псвевдо расширение" файла (как вы хотите - .view.php): Код (Text): function pseudoext($filename) { print substr( strstr(basename($filename), '.'), 1 ); } $file = 'header.inc.php'; pseudoext($file); вывод: inc.php