PageUp
@PageUp
Default

Как создать маску для нескольких частей названия файла?

Использую следующее:
array_map('unlink', glob("../local/$id.*.$login_*"));


Но скрипт удаляет вообще все файлы где совпадает $id. То есть условия после него, а именно .$login_ он игнорирует, а должен учитывать.

Нужно как то правильно прописать маску, что бы удалились только те файлы в которых совпадают $id и $login_ (то есть 2 части в названии).
* - часть названия, которая всегда меняется.
$id и $login_- всегда неизменны.
Расширение .dat тоже неизменно.

Названия файлов для примера выглядят примерно так:
phpcode.9.king_y.f.g.h.s.w.kingdom.9.king.9912.1867.0.dat

Нужна маска, что бы удалялись все файлы в названии которого есть только phpcode и king из начала названия, все остальное вне этих якорей может быть любым.

Можно ли по-простому или придется делать доп.проверки с поиском искомого слова в названии и только если оно найдено, то тогда тереть по маске?
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
PageUp
@PageUp Автор вопроса
Default
Решение нашел сам.

Выделил искомые слова одинарными, а не двойными кавычками. И соответственно все что внутри glob( тоже взял не в двойные кавычки, а в одинарные.
В двойных видимо точки в названии файла распознавались как часть условия маски.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
  1. Учимся задавать вопросы.
    Спрашивать в заголовке как сделать что-то, а ниже приводить код, который это делает - это попахивает шизофренией
  2. Учимся отлаживать свой код.
    Поскольку вопрос на самом деле - это классическое "почему у меня ничего не работает?".


Давайте по шагам, как детстве с мамой
  1. Что выводит echo "../local/$id.*.$login_*";? Соответствует ли вывод ожиданиям? Если нет - то в чем различия? Что должно вывести и что вывелось?
  2. Если ответ на первый вопрос положительный, то что выводит var_dump(glob("../local/$id.*.$login_*")); Соответствует ли вывод ожиданиям? Если нет - то в чем различия? Что должно вывести и что вывелось?
  3. Если ответ на второй вопрос положительный, то каков результат работы кода? Соответствует ли он ожиданиям? Если нет - то в чем различия? Что должно было удалиться, и что удалилось?
  4. Включен ли вывод ошибок? Если нет - то надо включить. Если включен и выводятся - то какие?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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