Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]explode i rozszerzenie
Forum PHP.pl > Forum > Przedszkole
Gray
Hej, posiadam taki oto kod:

  1. $roz = explode(".",($_FILES['obrazek']['name']));


Ma on na celu zapisać do zmiennej $roz rozszerzenie pliku wrzucanego (obrazek .jpg .png lub .gif), działa poprawnie jednak kiedy wrzucę obrazek z kropką w nazwie np. obrazek.kwiatek.jpg to skrypt przyjmie słowo kwiatek jako rozszerzenie.

Proszę o pomoc w usprawnieniu tego skryptu.

Pozdrawiam,
Gray
Rysh
Musisz pobrać ostatni element tablicy. Jest funkcja do tego.

  1. $roz = end(explode(".",($_FILES['obrazek']['name'])));
lobopol
albo
  1. $roz = end(explode(".",($_FILES['obrazek']['name'])));

albo
  1. $path_info = pathinfo($$_FILES['obrazek']['name']);
  2. $path_info['extension'];
Gray
Dzięki Panowie, sposób lobopol z pathinfo wydaje się profesjonalniejszy więc z niego skorzystam.

btw. w przykładzie z pathinfo wkradł Ci się chyba przypadkowy znak dolara "$$_FILES"
starach
  1. substr($_FILES['obrazek']['name'], strrpos('.', $_FILES['obrazek']['name']))
lobopol
starach, zdecydowanie lepiej pathinfo przy explode i tej twojej metodzie są problemy. Np. twoja metoda padnie gdy plik nazywa się plik albo plik.plik.jpg
starach
gdybym użył strpos to owszem, ale wykorzystałem strrpos(), która podaje pozycję pierwszego znaku od prawej strony.

edit>
do wyniku strrpos można jeszcze ewentualnie dodać 1 strrpos('.', $_FILES['obrazek']['name']) + 1, żeby wyciąć samo rozszerzenie bez kropki.
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.