справка с шаблоном шарика

Было бы хорошо, если кто-то мог бы дать мне regexp шаблон для шарика для получения ниже имен файлов:

1.jpg // this file
1_thumb.jpg
2.png // this file
2_thumb.png
etc...

возврат файлов без "_thumb". У меня есть этот шаблон:

$numericalFiles = glob("$this->path/*_thumb.*");

и это дает мне все с "_thumb".

5
задан salathe 16 August 2011 в 09:15
поделиться

4 ответа

GLAC () Не самая большая в обработке ситуаций, когда у вас есть сложные требования к соответствующим файлам, так как вы четко заметили. Я бы порекомендовал использовать библиотеку PHP SPL и используя преимущества каталога класса .

$iterator = new DirectoryIterator("/dir/path");
foreach ($iterator as $file) {
    if ($file->isFile() && preg_match("/^[0-9]+\./i",$file->getFilename())) {
        echo $file->getFilename();
    }
}

Вы можете чисто изменять свои критерии во время итерации (также легко изменить итератор, если вы когда-либо необходимы рекурсивная итерация каталога ).

6
ответ дан 18 December 2019 в 14:46
поделиться
foreach (glob('[0-9]*') as $filename) {
    if (strpos("$filename","_thumb") === FALSE){
        echo "$filename \n";
    }
}
3
ответ дан 18 December 2019 в 14:46
поделиться
$form->addElement('select','foo',
array(
        'label'        => 'ComboBox (select)',
        'value'        => 'blue',
        'multiOptions' => array(
            'red'    => 'Rouge',
            'blue'   => 'Bleu',
            'white'  => 'Blanc',
        ),
    )
);

Как указано выше, можно использовать «value» = > «blue» для выбора «blue» = > «Bleu».

Надеюсь, это вам поможет..

-121--2169943-

Я вижу, что этот вопрос уже имеет ответ, и я не пробовал NBehave. Но мы используем MSpec (Machine.Specifications) для этого довольно крупного проекта Enterprise, и он работает для нас очень хорошо. Очень хорошо стоит упомянуть.

Роб Конери сделал ОТЛИЧНЫЙ видеоролик об обучении BDD, где он использует MSpec, последовательно: (ссылка удалена, больше не доступна, но ищите ее)

Подробнее о MSpec от Роба Конери, и почему он ее использует.
http://wekeroad.com/2009/09/21/make-bdd-your-bff-2/ Вы также можете проверить его другие сообщения, помеченные BDD.

Достоинства:

  • Позволяет быстро «заглушить» всю Историю, Сцены, Контексты и Спецификации - без какого-либо фактического кода. Давайте сосредоточимся на общем «Поведении», которое является целью BDD!, не беспокоясь о коде и его компиляции.
  • Создает ПРЕВОСХОДНЫЙ отчет HTML с «< - NOT IMPLEMENTED» рядом с упорными спецификациями. Я часто передаю этот отчет: Клиенту (CEO и CTO), Тестерам, Новым Ресурсам, которые я привожу в проект, и всем, кто хочет знать, как работает программное обеспечение - без необходимости показывать строку кода!
  • TestDriven.NET питатели включены в MSpec с использованием нового соединения tdnet (без установки!).
  • Атрибут [Behaviors] вместе с Behaves_like типом делегата делает копирование существующих спецификаций из одной scenerio в другую scenerio привязкой.

Недостатки:

  • Мало или нет документации, несмотря на то, что не требуется много (смотрите видео выше). Автор недавно записался в блог за помощью в документировании.
  • Все еще новый, и просто побочный проект от автора (не его главный концерт). Но, это очень активно на этом посту.

Надежда, что помогает.

-121--3780297-

узоры и регулярные выражения отличаются. Но реализация PHP не реализует отрицание образца, необходимое для сопоставления только этих файлов. Необходимо использовать большой положительный образец, например [0-9] * .jpg , а затем фильтровать результаты.

3
ответ дан 18 December 2019 в 14:46
поделиться

Дальше к Использование Zombat Справедливого Утешения Справочника, возможно, имеет смысл построить свой собственный специализированный класс фильтра, чтобы облегчить жизнь (см. Разницу с помощью Foreach ) и более многоразовым Отказ

class DirectoryFilterThumbs extends FilterIterator {
    public function __construct($path) {
        parent::__construct(new DirectoryIterator($path));
    }
    public function accept() {
        // Use regex or whatever you like here
        return ($this->isFile() && strpos($this->getFilename(), "_thumb.") === FALSE);
    }
}

$files = new DirectoryFilterThumbs("/dir/path");
foreach ($files as $file) {
    echo $file->getFilename() . PHP_EOL;
}

Конечно, если нет необходимости делать это в нескольких местах, то простые каталоги утром / условие Combo, заданное Zombat, идеально подходит.

1
ответ дан 18 December 2019 в 14:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: