Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: piotrooo89, dodany: 30.11.2009 15:31, tagi: php

Dość często spotykamy się z problemem przesłania tablic albo to za pomocą formularza albo za pomocą pojedynczego linku. Jako że tablicę są bardzo fajnym narzędziem w jezykach programowania warto było by wiedzieć jak można je swobodnie przesyłać w PHP. Zapraszam do zapoznania się z niniejszym artykułem.

1. Wysyłanie tablic za pomocą formularzy
Na pierwszy ogień weźmy formularze. Aby swobodnie móc operować na tablicach potrzebne nam będą pewne funkcje tj.: serialize, unserialize, urldecode i urlencode. Zobaczmy jak działają owe funkcje:

A tak wygląda kod do przesyłania naszych tablic:

  1. $tab[1]='jeden';
  2. $tab[2]='dwa';
  3. $tab[3]='trzy';
  4. $tab_2_send = serialize($tab);
  5. $tab_2_send = urlencode($tab_2_send);
  6. ?>
  7. <form method="get" action="">
  8.     <input type="hidden" name="tablica" value="<?=$tab_2_send?>" />
  9.     <input type="submit" value="ok" />
  10. </form>
  11.  
  12. <?
  13. if ($_GET['tablica'])
  14. {
  15.     $show_tab = urldecode($_GET['tablica']);
  16.     $show_tab = unserialize($show_tab);
  17.     print_r($show_tab);
  18. }
  19. ?>

Wyjaśnienie:

  • $tab – jest naszą tablicą którą chcemy wysłać,
  • $tab_2_send – jest to tablica na którą zadziałaliśmy funkcją serializującą i zakodowaliśmy ja dla paska adresu,
  • $show_tab – dekodujemy ją i “rozserializujemy” aby nie było różnych dziwnych znaczków,
  • print_r($show_tab) – pokazuje nam tablice którą przesłaliśmy.

2. Wysłanie tablic za pomocą linków
Kolejną dość fajna funkcją związaną z PHP jest możliwość przesłania tablicy za pomocą klikalnego linka. Sprawa nie wygląda aż tak skomplikowanie jak się może wdawać. Dlaczego? Ponieważ paser PHP ma w sobie wbudowaną funkcję http_build_query, która dokonuje wszystko za nas, bez jakichkolwiek problemów.

Składnia tej funkcji jest możliwie najprostsza:

  1. string http_build_query  ( array $formdata  [, string $numeric_prefix  [, string $arg_separator  ]] )

jako pierwszy argument podajemy tablice na której chcemy działać, kolejny jest prefiks jaki ma pojawić się przed każdą daną (prefiks ten jest definiowany przez użytkownika) i trzeci parametr to separator jakim mają być oddzielone poszczególne wartości z tablicy.

Nasz kod wygląda tak:

  1. <?
  2. $tab[1]='jeden';
  3. $tab[2]='dwa';
  4. $tab[3]='trzy';
  5.  
  6. $t =  http_build_query($tab);
  7.  
  8. echo '<a href="?'.$t.'">Wyślij tablice</a>';
  9. ?>

w tym wypadku link wygląda tak: ?1=jeden&2=dwa&3=trzy

Możemy np. dodać sobie nasz prefiks i wtedy wywołanie funkcji przyjmuje postać:

  1. $t =  http_build_query($tab, 'moj_prefiks_');

a link: ?moj_prefiks_1=jeden&moj_prefiks_2=dwa&moj_prefiks_3=trzy,

Ostatnią własnością jaką dysponuje ta funkcja jest dodawanie własnego separatora:

  1. $t =  http_build_query($tab, 'moj_prefiks_', '|');

i teraz otrzymujemy link z zadeklarowanym przez nas separatorem: ?moj_prefiks_1=jeden|moj_prefiks_2=dwa|moj_prefiks_3=trzy.

To tak pokrótce jeśli chodzi o wysyłanie danych tablicowych za pomocą PHP.

Autor wpisu: Grzegorz Świrski, dodany: 29.11.2009 16:02, tagi: php

Kiedy przychodzi zarządzać coraz większą i większą ilością obiektów (pomyśl o frameworkach czy CMS-ach) bardzo szybko możemy zaobserwować pewną niedoskonałość wstrzykiwania zależności z zewnątrz. Musimy za każdym razem inicjować obiekt i zadbać o część jego funkcjonalności. Gdy zaczynamy się z tym borykać w wielu miejscach aplikacji czas pomyśleć o kolejnym kroku – Dependency Injection Container. Container [...]

Autor wpisu: batman, dodany: 25.11.2009 21:29, tagi: javascript

W poprzedniej serii poświęconej Adobe AIR opisałem czym jest technologia Adobe AIR, przestawiłem podstawowe techniki programowania przy jej użyciu oraz zaproponowałem IDE, które wspiera tworzenie aplikacji AIR. Dzisiejszy i kilka kolejnych wpisów poświęconych Adobe AIR, będzie skupiało się na praktycznym zastosowaniu API do tworzenia aplikacji. Obiecałem, że będzie to drag and drop upload i

Autor wpisu: Vokiel, dodany: 24.11.2009 19:58, tagi: css

Czym są “Chochliki (skrzaty) CSS” ? Do czego służą? Jak możemy je wykorzystać? Jakie korzyści płyną z ich zastosowania? Jakie są ograniczenia, trudności w stosowaniu?

CSS Sprites jest techniką łączenia wielu obrazków w jeden, których wyświetlanie następuje poprzez odpowiednie wypozycjonowanie obrazu tła. Wbrew temu co mogłaby wskazywać nazwa, nie są to małe obrazki, lecz jeden duży złożony wielu mniejszych.

Na czym polega CSS Sprites

Jak zostało wspomniane w wypisie, technika ta polega na połączeniu wielu obrazków wykorzystywanych na stronie w jeden. Wyświetlanie tych obrazków polega na ustawieniu w CSS atrybutu background-position na odpowiednią wartość “przesuwającą” cały obraz, tak aby w polu widzenia był ten właściwy. Przeglądarka pobiera cały obrazek i wyświetla jego fragmenty w odpowiednich miejscach, zamiast pobierać każdy mały obrazek oddzielnie.

Nie jest to nowa technika, właściwe można powiedzieć, że jest starsza niż sam CSS. Jej pochodzenie wywodzi się ze starych 8-bitowych gier komputerowych. Komputer wczytywał do pamięci jeden obraz, a wyświetlał tylko akurat potrzebny fragment. Było to o wiele szybsze rozwiązanie niż ciągłe pobieranie nowych obrazków.

Najczęściej wybieranym zastosowaniem CSS Sprites (często nieświadomie) jest efekt CSS Rollover polegający na podmianie obrazka tła po najechaniu kursorem.

 

Niedogodności i trudności w stosowaniu

Na początku wspomnę o kilku niedogodnościach związanych ze stosowaniem tego rozwiązania. Warto mieć je na uwadze, aby już od początkowych etapów tworzenia nie wpaść w pułapki, aby uniknąć konieczności przerabiania wszystkiego od początku.

Obraz całościowy CSS Sprites tworzony jest z wielu mniejszych obrazków, zwykle w programach graficznych (Adobe® Photoshop®, Gimp), zatem wszelkie zmiany w wyglądzie strony będą wymagały dokonania przeróbek w obrazku całościowym. Ma to istotne znaczenie w przypadku korzystania z usług zewnętrznych grafików.

W przypadku zastosowania elementu tła, które jest powielane po jednej ze współrzędnych element ten powinien być jedynym elementem w rzędzie/kolumnie (w zależności od osi powielania). Dobrze to widać w przypadku YouTube (na niżej załączonym obrazku).

Waga obrazka CSS Sprites może być czasem większa niż sumaryczna waga obrazków składowych (nie jest to regułą, bo przykładowo przy małych ikonkach zajmuje mniej).

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: batman, dodany: 24.11.2009 08:17, tagi: internet

Google Chrome jest jedną z najlepszych, jeśli nie najlepszą, przeglądarką internetową. Niestety mimo swojej szybkości i niezawodności, nie może podbić rynku, na którym króluje IE wraz z Firefox-em. W chwili obecnej jest to około 3% (według informacji z serwisu ranking.pl).Google postanowiło to zmienić i otworzyło dla deweloperów Google chrome extensions (oczywiście w wersji beta). Jest to miejsce

Autor wpisu: Grzegorz Świrski, dodany: 21.11.2009 16:04, tagi: php

To co odróżnia programistę od dobrego programisty to umiejętność projektowania aplikacji, przewidywania drogi, jaką pójdzie rozwój projektu i pozostawienie sobie furtki do łatwych modyfikacji w przyszłości. Początkujący bardzo często mylą sobie naukę programowania z nauką tworzenia dobrego kodu. Szczególnie widoczne jest to wśród programistów PHP, gdzie do nauczenia się podstaw języka wystarczy kilka wieczorów. Dzisiaj [...]

Autor wpisu: WojciechNaruniec, dodany: 21.11.2009 14:08, tagi: php

Przygotowałem się na kilka godzin pracy, a okazało się, że udało się wszystko zrobić w 15 minut. Większość poprawek to była zmiana nazw metod.
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.