Одна вещь, которую я хотел бы изменить, это ваша условность:
if(substr($fileName,-4,4)=='.php')
То, что вы делаете, это занесение в черный список .php
файлов, что само по себе хорошо. Однако, (как было отмечено в комментариях к вопросу), вместо этого вы должны использовать подход типа белых списков файлов. Так что для условного вы бы проверили обратное.
Вместо логического выражения «сбой, если файл .php», вы логически сказали бы что-то вроде «сбой, если файл не .jpg, или .gif, или .doc, и т. Д.» Наличие полного списка разрешенных типов и запрещение всех остальных, как правило, безопаснее и помогает предотвратить проникновение плохого файла.
Это не полное решение по безопасности, но в целом белый список безопаснее, чем черный.