Jump to content

LokiDi L0ck

Expert
  • Posts

    484
  • Joined

  • Last visited

Everything posted by LokiDi L0ck

  1. LunatiK Если вы не поняли, на вопрос темы отвечать не стремился, она мне не интересна. Лишь захотелось укоротить запись выше отписавшегося)
  2. Давайте посмотрим первое сообщение. В дальнейшем нахожу комментирование ваших пояснений бессмысленным.
  3. Привязано к конкретному примеру. Дальше сами. function normalizePath($path) { return rtrim(str_replace(array('/', '\\'), '/', $path), '/'); } $documentRoot = normalizePath(getenv('DOCUMENT_ROOT')); $foundedFiles = array(); $docsDirectory = dirname(normalizePath(__FILE__)); $needleExtensions = array('doc', 'docx'); try { $directoryIterator = new RecursiveDirectoryIterator($docsDirectory, RecursiveDirectoryIterator::KEY_AS_PATHNAME); } catch(Exception $e){ echo $e->getMessage(); exit; } $dirs = new RecursiveIteratorIterator($directoryIterator, RecursiveIteratorIterator::SELF_FIRST); foreach ($dirs as $dir => $fileInfo) { if (true === $fileInfo->isFile() && in_array(strtolower(pathinfo(($filePath = $fileInfo->getPathname()), PATHINFO_EXTENSION)), $needleExtensions)) { $foundedFiles[str_replace($documentRoot, '', normalizePath($filePath))] = $fileInfo->getBasename(); } } $output = ''; if (false === empty($foundedFiles)) { foreach ($foundedFiles as $filePath => $fileName) { $output .= '<a href="' . $filePath . '">' . $fileName . '</a><br/>'; } } echo $output;
  4. AMD Слово "всех" значит всех. Или у вас есть своё истинное определение данного понятия? В ином случае составляйте названия тем адекватно контексту.
  5. Специально для лентяев. error_reporting display_errors display_startup_errors
  6. Здесь неточность. Вы проверяете $file_ext на doc и docx, но вышеуказанный код для docx возвратит ocx. Внесу свою скромную лепту: /** * Директория, для поиска файлов. Поиск будет также производиться * во всех её поддиректориях. * В данном случае она указывается относительно корня сайта */ $docsDirectory = 'docs'; //Расширения файлов, которые нам необходимы $needleExtensions = array('doc', 'docx'); //Массив найденных файлов $foundedFiles = array(); try { $directoryIterator = new RecursiveDirectoryIterator($docsDirectory, RecursiveDirectoryIterator::KEY_AS_PATHNAME); } catch(Exception $e){ echo $e->getMessage(); exit; } $dirs = new RecursiveIteratorIterator($directoryIterator, RecursiveIteratorIterator::SELF_FIRST); foreach ($dirs as $dir => $fileInfo) { if (true === $fileInfo->isFile() && in_array(strtolower(pathinfo(($filePath = $fileInfo->getPathname()), PATHINFO_EXTENSION)), $needleExtensions)) { /** * Индексируем массив именем файла * В случае ОС windows заменяем "\" на "/" в пути файла */ $foundedFiles[$fileInfo->getBasename()] = str_replace('\\', '/', $filePath); } } $output = ''; if (false === empty($foundedFiles)) { /** * Прокручиваем массив, создавая ссылки на файлы, где имя * ссылки идентично имени файла */ foreach ($foundedFiles as $fileName => $filePath) { $output .= '<a href="' . $filePath . '">' . $fileName . '</a><br/>'; } } echo $output; p.s. В случае, если вы указываете абсолютный путь до файлов, то с корректировкой ссылки на файл думаю справитесь? p.p.s. Извиняюсь, поспешил, индексация $foundedFiles именем файла не совсем верный вариант, т.к. в случае одинаковых имён, пути будут затираться. Но у вас есть своя голова, допилите, что необходимо.
  7. Работает только для IE, и только если в нём включён ActiveX. Подробности в гугле.
  8. У вас 1 комментарий У вас 2 комментария У вас 5 комментариев С помощью gettext решается легко и красиво. Эта категоричность взята не с потолка, а из опыта (который когда-то начинался как ваш). Лучше сразу приобщайтесь к хорошему стилю (хоть и с потерей времени на изучение), чем в будущем ездить на велосипедах с квадратными колёсами.
  9. Не быстрее Не удобно для работы с формами слов после числительных. Не удобно для независимости работ программистов и переводчиков. Не удобное управление переводимыми фразами (см. poEdit) Не красиво всюду таскать за собой массив.
  10. Boron Функция define служит для определения глобальной константы. Использование для локализации неуместно и не рационально. Для переводов лучше gettext, и оболочек её использующих, ещё ничего не придумали.
  11. psywalker Чьим требованиям, вашим? Подумайте немного об этом, в итоге согласитесь с товарищем s0rr0w.
  12. WebSocket Видео с примером
  13. ZoNT Вам 150 000, а какому-нибудь Бобу Макгрегору из штата Калифорния 500 000 на as3. Замечение было не к тому, что лучше. А к тому что руководствоваться категориями "ВСЕ" это как-то самонадеянно.
  14. ZoNT Вы конечно же хотели сказать "все банеры (которые мне попадались)"?)) Вероятно по вышеназванной Great Rash'ом причине
  15. На ActionScript 2.0 ещё кто-то пишет
  16. CoDy Двигаетесь в правильном направлении (из расчёта, что ваш пример лишь представляет общую идею, а не готовый вариант). Посмотрите как подобное реализовано в ZF: Zend_View. Если задействовать Zend_Controller, то файлы вида подключаются автоматически.
  17. CoDy Наоборот. HTML с небольшими вставками php. Вы же с шаблонами работаете.
  18. CoDy Забудьте о шаблонизаторах типа smarty (иначе в будущем придётся столкнуться с громадными неповоротливыми конструкциями и тормозной работой).
  19. underW Этот пример демонстрирует весь дзен абстрактных классов. Потому его везде и применяют. Проведите соответствие в реальной жизни. Любую фигуру (shape) можно нарисовать (метод draw), но если я попрошу нарисовать вас фигуру, вы наверное уточните "какую именно?". Т.е. абстрактное понятие "фигура" может быть нарисовано, но КАК - может быть применимо только к конкретным фигурам типа окружность (circle). Именно абстрактное понятие фигура и задаёт наследуемым классам обязанность (абстрактным методом) - уметь себя рисовать, а так же класс shape может содержать реализацию других общих методов для всех фигур.
  20. LokiDi L0ck

    php 5.3

    http://windows.php.net/download/ Брал архив VC9-x86-thread_safe, всё есть.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy