1. Не мучайте файловую систему, всякими переборами... которые там не нужны.
2. Если Вам нужно уникальное имя файла - его можно сгенерировать множеством способов, например, функция
microtime вернёт время в милисекундах. И так как, чисто гипотетически, вероятность загрузки > 1000 файлов в секунду равна примерно нулю (в Вашем случае точно) - цифры всегда будут уникальными, не зависимо от папок... Если планируется >1000 файлов в минуту, можно ещё подставлять рандомное число.
3. Для замены строк, есть
str_replace
4. Расширение файла получить не сложно, есть масса
способов того
5. Есть масса способов, получить имя файла без расширения, что бы аменить его через [п.3]
Надеюсь, Вы понимаете, к чему я это всё... Вам нужно просто хорошенько обдумать задачу, в будущем этот навык будет крайне полезен.