php проверить, существует ли файл: проверить только часть

в php мы можем проверить, существует ли файл, используя

if(file_exists("destination/"))
{
    condition
}

но то, что я хотел сделать, это...

например, у меня уже есть этот файл в пункте назначения

hello_this_is_filename(2).doc

как мне узнать, есть ли в этом каталоге файл с именем, содержащим символ

hello_this_is_filename

Я хотел искать таким образом, потому что... если в этом каталоге существует, что я буду делать, это... переименовать файл в

hello_this_is_filename(3).doc

Мне также нужно подсчитать существование моего поиска, чтобы я знал, какой номер я собираюсь поставить как

(3), (4), (5) and so on

любая помощь?


person Jam Ville    schedule 14.09.2012    source источник
comment
php.net/glob, вероятно, будет здесь полезен   -  person Marc B    schedule 14.09.2012


Ответы (2)


Используйте glob.

if (count(glob("destination/hello_this_is_filename*.doc"))) {
  //...
}
person xdazz    schedule 14.09.2012

Используя предложение Marc B и xdazz, я бы сделал следующее:

<?php
$files = glob("destination/hello_this_is_filename*");
if (count($files)) {
   sort($files);

   // last one contains the name we need to get the number of
   preg_match("([\d+])", end($files), $matches);

   $value = 0;
   if (count($matches)) {
      // increment by one
      $value = $matches[0];
   }

   $newfilename = "destination/hello_this_is_filename (" . ++$value . ").doc";
?>

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

person endyourif    schedule 14.09.2012