realpath vs str_replace для нормализации косых черт

Скажем, у меня неправильно отформатированный путь /public/var/www/html/images\uploads\

Есть ли какие-либо преимущества в производительности между этими двумя методами «нормализации» косых черт, или это просто другой способ ведения дел?

  1. realpath($path) . DIRECTORY_SEPARATOR
  2. str_replace('\\', '/', $path);

person Alex    schedule 24.08.2017    source источник
comment
Только что просмотрел нормализатор пути к файлу М. Каммингса. Композитор: phpclasses/file-path-normalizer. Если вы хотите избежать использования realpath, но хотите что-то более тщательное, чем str_replace.   -  person Progrock    schedule 25.08.2017


Ответы (1)


realpath() может и, вероятно, требует немного больше вычислений, но делает больше, чем str_replace(). Что вы будете использовать, зависит от вас и зависит от приложения. realpath() не только исправит формат строк, но и проверит, существует ли файл с таким именем. Кроме того, использование realpath() в большинстве случаев сделает ваш код более читабельным и понятным, потому что его наименование лучше соответствует его функциональности (опять же, в зависимости от приложения).

realpath()

person Phillip Weber    schedule 24.08.2017
comment
Поскольку realpath может расширять символические ссылки, он должен сканировать файловую систему, тогда как str_replace никогда не просматривает ее. - person Progrock; 25.08.2017