Trywialny temat: porównanie czasu wykonania poszczególnych funkcji sprawdzających dostępność pliku.
Testy zostały przeprowadzone na wersji php:
W każdej iteracji funkcja sprawdzała jeden losowy plik spośród 20 tysięcy istniejących. Po każdym wykonaniu funkcji wywoływano funkcję clearstatcache celu opróżnienia cache. Wyniki prezentują się następująco:
W zestawieniu znalazła się również funkcja stream_resolve_include_path ze względu na http://php.net/file_exists
Warning This function returns FALSE for files inaccessible due to safe mode restrictions. However these files still can be included if they are located in safe_mode_include_dir.
W sytuacji includowania to, że plik istnieje nie oznacza, że jest gotowy do odczytu. Poprawniejszym rozwiązaniem jest wykorzystanie: http://php.net/stream_resolve_include_path
Resolve filename against the include path according to the same rules as fopen()/ include.
Pozostałe wnioski pozostawiam czytelnikom 🙂
Autorem tekstu jest Marek Rode.