Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]apostrof a zmienna
Forum PHP.pl > Forum > Przedszkole
frankiejojo
Witam,

Temat prymitywny ale na pierdole się wywalam.

Przerabiam plik do umieszczania zdjęcia w katalogu
skrypt odzipowuje katalog, wychwytuje tam txt który dodaje do bazy w folderze znajdują się również pliki graficzne i i to w pętli jest umieszczane w konkretnym katalogu.
Te fotografie otrzymują nazwę $fotka.

Skrypt umieszczający pliki w odpowiednim katalogu jest tradycyjny.

  1. if ($_FILES['plikuzytkownika']['error'] > 0)
  2. {
  3. echo 'Problem: ';
  4.  
  5. switch ($_FILES['plikuzytkownika']['error'])
  6. {
  7. case 1: echo 'Rozmiar pliku przekroczył wartość upload_max_filesize'; break;
  8. case 2: echo 'Rozmiar pliku przekroczył wartość max_file_size'; break;
  9. case 3: echo 'Plik wysłany tylko częściowo'; break;
  10. case 4: echo 'Nie wysłano żadnego pliku'; break;
  11. }
  12. }

I teraz problem polega na tym jak zamienić pliuzytkownika w apostrofach na $fotka.
Jak wykasuje wyraz "plikuzytkownika" oraz apostrofy i wpiszę tam $fotka - to wyskakuje mi komunikat "Undefinded index - i nazwa pliku.

Pomoże ktoś?
ctom
to przed tą pierwszą linią dodaj sobie :
Kod
die( var_dump( $fotka, $_FILES) );

i mając treśc tego błędu myśl co jest nie tak...
frankiejojo
string(11) "Wilcza1.jpg" array(0) { }

Taa, to że Wilcza1.jpg liczy 11 znaków - fakt nie liczyłem,
ale jak tą resztę rozumieć? i te znaki cudzysłowia nie specjalnie mi się podobają. ale bardziej strzelam niż wiem
ctom
poczytaj dokumentacje PHP - o array ( co to są indeksy, jak tworzyć tablice wielowymiarowe, jak sprawdzać czy istnieją klucze w danym poziomie tablicy itp) ... potem poczytaj o switch ... i potem debuguj swój kod ( czytaj błędy w całości )
frankiejojo
OK mam stringa a potrzebuję tablicę czyli arraya - ale jak to zmienić?

No dobra - może teraz ktoś podpowie:
Dałem coś takiego:

print_r(getimagesize($filename));

i dostałem:
Array ( [0] => 500 [1] => 647 [2] => 2 [3] => width="500" height="647" [bits] => 8 [channels] => 3 [mime] => image/jpeg )

teraz numer polega na tym jak pobrać same [mime]

Kod
$typmime = getimagesize($filename);
echo '</br>0  ';
echo $typmime[0];
echo '</br>1 ';
echo $typmime[1];
echo '</br>2 ';
echo $typmime[2];
echo '</br>3 ';
echo $typmime[3];


o do 3 chodzi
Potem się wykrzacza:
jak dam: echo $typmime[4]; -> to mówi że nie ma takiej zmiennej
jak dam echo $typmime[mime]; -> to też nic nie działa

Więc jak pobrać to je. mime?
Dejmien_85
Cytat(frankiejojo @ 28.01.2016, 20:35:37 ) *
o do 3 chodzi
Potem się wykrzacza:
jak dam: echo $typmime[4]; -> to mówi że nie ma takiej zmiennej
jak dam echo $typmime[mime]; -> to też nic nie działa

Więc jak pobrać to je. mime?


Musisz się dokształcić z tablic. Tutaj masz tablicę asocjacyjną, która ma różne klucze. Pierwsze klucze to liczby, ale dla "mime" kluczem jest string, czyli aby pobrać jego wartość musisz wpisać:

  1. echo $typmime["mime"];


Ale nie przejmuj się, każdy kiedyś miał swoje początki. Ogarnij tablice, będzie Ci się lepiej żyło. ; )

PS gdy chcesz wyświetlić wartość, to na początku rób to przez var_dump() lub var_export, ponieważ print_r() przedstawia wartości w sposób czytelny dla człowieka i na początku możesz mieć problemy aby się połapać jak wyglądają naprawdę dane w PHP - przez to zrobiłeś błąd, ponieważ print_r pokazał Ci klucz "mime" bez cudzysłowowa, a string (łańcuch znaków) w PHP występują wszędzie z cudzysłowem.
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.