Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] file_exists() - wielkie, małe litery
Forum PHP.pl > Forum > Przedszkole
desavil
Witam,
Jak posiadam serwer s systemem operacyjnym linux Debian 5.0
Jak wiadomo dla linuxa wielka i mała litera to coś całkiem innego. Przy użyciu PHP potrzebuję znaleźć plik funkcją "file_exists()" i tutaj zaczyna się mój problem.
Jeżeli jakiś plik ma nazwę "JaKis", a wyszukuję nazwę "jakis" to oczywiście tego nie znajdzie.

Więc moje pytanie brzmi - jak odnaleźć wszystkie pliki nie zależnie od wielkości liter.

Pozdrawiam,
vermis
file_exists() nie służy do odnajdowania plików tylko sprawdzania czy dany plik istnieje. Na przykład sprawdzasz czy plik istnieje zanim go otworzysz.
desavil
No tak, wiem to jak go użyć, aby sprawdzał to o co mi chodzi questionmark.gif
wookieb
Pomijając kwestię jak bardzo zasobożerna operacja to będzie będziesz musiał użyć glob i wszystkie znalezione pliki potraktować preg_match-em.
Szczerze mówiąc w ogóle nie polecam wykonywania takiej operacji. Po prostu zadbaj o odpowiednią wielkość liter w nazwach plików.
desavil
Tak, tylko to jest serwer gry. I nazwy postaci zapisują się w postaci pliku np. mOj nick.xml
Jeżeli kolejny gracz zakłada konto to sprawdza się w katalogu czy ten nick już nie istnieje. I jeżeli sprawdza się funkcją file_exists() to można stworzyć taki sam nick z inną literą i ktoś może się zalogować wtedy na czyjąś postać.
vermis
To zapisuj nazwy plików małymi literami a właściwy nick (właściwą pisownię) zapisz już w xml'u.
wookieb
Takie dane trzyma się w bazie danych a nie w plikach na serwerze...
Daiquiri
To porównuj wszystko z małej litery - zarówno nazwę pliku jak i tę wyszukiwaną. Niezbyt optymalnie, no ale: przeczesujesz katalog w poszukiwaniu wszystkich plików, wczytujesz nazwę pojedynczego pliku do zmiennej i zamieniasz by całość była pisana z małej litery. Następnie przyrównujesz do nowej wartości - ale uprzednio ją również zamieniasz na pisaną z małych liter. W ten sposób wielość liter w nazwach przestanie mieć znaczenie - przynajmniej przy porównywaniu.

Czyli pokrótce przy porównywaniu korzystaj z zamiany na małe litery smile.gif.
erix
A o bazach danych, to Ty słyszał?

Poza tym, przy rejestracji możesz przecież zapisywać plik od razu z małej i nie będziesz miał nie istniejącego problemu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.