Aug 07 2008

Zagrożenia związane z używaniem UTFa w PHP

Tag: PHPdooshek @ 10:33

Natknąłem się na fajną
stronkę która opisuje problemy i ryzyka związane z używaniem UTFa w PHP - wyszczególnione są różne phpowe funkcje - moim zdaniem “must have” dla każdego programisty PHP.


Jun 30 2008

Mały ficzer FireBuga

Tag: Przeglądarki, HTML, PHP, JavaScriptbuka @ 02:25

Podejrzewam, że nie wszyscy wiedzą, że Firebug ma małą pomocną funkcjonalność “poboczną”, którą niedawno przypadkiem odkryłem. Jak wiadomo, gdyby nie Firebug to debugowanie zapytań ajaxowych byłoby w ogóle masakrą. Dzięki FB jakoś dajemy radę. Można sobie w funkcji zrobić var_dump’a, albo print_r’a i w konsoli FB wyłuskać wynik. Ale ze względu na wyświetlenie w konsoli html’a jako tekstu, var_dump praktycznie odpadał. Ale jeżeli ktoś czuje się bardziej związany emocjonalnie z var_dump’em ;) to w końcu dochodzimy do tego co znalazłem - jeżeli w odpowiedzi na zapytanie w konsoli FB mamy wysyp kodu html, można na nim kliknąć MMB/wałkiem, a Firefox otworzy nam go w nowej karcie, zinterpretowanego i pokolorowanego :)firebug_mmb.png

That’s all, folks :) Mała rzecz, a cieszy ;)

ps. Tylko że nie zawsze to działa… ;P


Jun 19 2008

Wykorzystanie ceny brutto w rachunkach aplikacji

Tag: MySQL, PHPbirkin @ 01:24

W naszych serwisach bardzo często pojawia się zarządzanie cenami różnych produktów (wyliczanie cen, stawek VAT oraz innych skomplikowanych obliczeń). W większości przypadków podstawą jest cena netto, natomiast problem pojawia się, kiedy klient zażyczy aby podstawą była cena brutto!
Continue reading “Wykorzystanie ceny brutto w rachunkach aplikacji”


Mar 18 2008

Drukowanie z poziomu skryptu PHP w systemie Windows

Tag: PHPskowron @ 01:46

Część osób nie wie że istnieje możliwość dodania do PHP rozszerzenia pozwalającego na otwarcie połączenia z dowolną drukarką zainstalowana wcześniej w systemie operacyjnym i zmuszenia jej do wyplucia czego tylko zapragniemy. Aby tego dokonać należy:

  1. Pobrać odpowiednią bibliotekę (najlepiej ze strony
    pecl4win).
  2. Skopiować plik php_printer.dll dokatalogu ext w folderze gdzie zainstalowany jest PHP (np C:\Program Files\PHP\ext)
  3. Edytować plik php.ini (najczęściej znajduje się w C:\WINDOWS) i dodać w częsci z rozszerzeniami (Windows Extensions) linijkę extension=php_printer.dll

Aby przekonać sie czy całość działa spróbuj uruchomić następujący kod:

Ten i więcej przykładów znajdziecie bezpośrednio na
http://pl.php.net/printer.

Część osób pewnie zapyta o zastosowanie tego typu rozwiązania. My wykorzystaliśmy tę funkcjonalność podczas drukowania kodów kreskowych. W rezultacie sprzedawca chcąc dodać nowy produkt, klika “wygeneruj nowy kod kreskowy” a drukarka automatycznie rozpoczyna drukowanie uprzednio wygenerowanego w php kodu.

Ograniczeniem może być brak odpowiednika dla systemu spoza rodziny Windows. A może zna ktoś takowy?


Mar 13 2008

Kompilacja kodu PHP

Tag: PHPradmen @ 09:16

Wiadomym jest, że PHP jest językiem interpretowanym. Czasami jednak zachodzi potrzeba “upakowania” kodu PHP do jednego exeka tak, żeby bez interpretatora móc odpalić nasz skrypt. Do tego celu są wykorzystywane różne kompilatory PHP, które przepisują kod PHP na binarkę (są nawet stosowne funkcje w PHP).

Niedawno szukaliśmy dobrego programu, który mógłby spakować nasz kod PHP do pliku wykonywalnego. Znaleźliśmy program
Roadsend niestety okazał się nieprzydatny, ponieważ skompilowanie kodu PHP wymagało od nas sporo wysiłku, a efekty i tak były mizerne.

Na szczęście znaleźliśmy program
Bambalam, który w bezbolesny sposób pozwala na kompilację pliku PHP. Dodatkowo możemy ten kod spakować przy pomocy
UPXa. Zaletą tego programu jest możliwość dołączenia przeróżnych bibliotek. W naszym skrypcie była potrzebna biblioteka php_printer.dll. Wystarczyło pobrać odpowiednią wersję (o tym za chwilkę) wrzucić do katalogu z programem Bambalam i odpalić wspomniany program z opcją “-e:php_printer.dll”.

Niestety Bambalam ma dość sporą wadę. Ostatnia wersja wyszła w roku 2006 i nie ma wsparcia dla PHP5, także jesteśmy zmuszeni do porzucenia niektórych dobrodziejstw jakie niesie ze sobą PHP5.

Pomimo tej wady warto zainteresować się tym programem, czasami są sytuacje, że skompilowanie kodu PHP jest przydatne.


Mar 10 2008

Pływający kotek, czyli o korzystaniu z metod klasy A w obiekcie B.

Tag: PHPskowron @ 04:45

pływający kotekDzisiaj Bartek odkrył interesującą rzecz o której ani On ani ja wcześniej nie wiedzieliśmy. Być może i ktoś z Was również o tym nie wie, więc chętnie opowiemy :) Generalnie chodzi o to że… koty nie pływają pod wodą…

Continue reading “Pływający kotek, czyli o korzystaniu z metod klasy A w obiekcie B.”


Mar 10 2008

Generowanie wykresów za pomocą Google Charts

Tag: HTML, PHPbuka @ 10:28

Do niedawna generowanie wykresów było albo potwornie żmudną robotą, albo dawało bardzo mizerne rezultaty. Ale już nie teraz - Google udostępniło nowe API (
Google Charts) do generowania wykresów różnego rodzaju - liniowych, słupkowych, kołowych, rozproszonych… Dla każdego coś dobrego.

Zasada jest wręcz śmiesznie prosta - wykres wstawiamy do HTMLa od razu jako obrazek, w źródle podając zwyczajnie odpowiedni link do Google Charts, w którym zawarta jest cała konfiguracja wykresu i jego dane. Całe narzędzie jest darmowe, oczywiście z pewnymi ograniczeniami:

  • limit 50.000 wygenerowań dziennie/witrynę,
  • powierzchnia obrazka 300.000 pikseli i…
  • jakieś ograniczenie złożoności wykresu wynikające z maksymalnej dopuszczalnej długości linka, ale to nie ograniczenie twórców, tylko technologii.

Wykresy można sobie oczywiście cache’ować, jeżeli dane nie zmieniają się z każdą odsłoną.

Najtrudniejsze to złożyć odpowiedni adres. 
Tutaj są zebrane biblioteki znacznie ułatwiające sprawę (konfigurują wykres i kodują dane do łańcucha znaków). Więc cała sprawa ogranicza się do kilku kroków - zbieramy jakieś dane do wykresu, tworzymy obiekt definiujący wykres, wrzucamy do niego nasze dane plus trochę konfiguracji, wyciągamy gotowy link i wrzucamy w źródło obrazka. Gotowe.
Do php dobra jest chociażby biblioteka do pobrania z
www.malaiac.com/GphpChart/. Jak na razie większość dostępnych bibliotek nie obsługuje w 100% możliwości API, ani też samo API nie obsługuje wszystkich rodzajów wykresów jakie sobie można wyobrazić. Jednak do standardowych, codziennych zastosowań jest to rewelacyjne narzędzie! Polecam przetestować, zmiana adresu obrazka i śledzenie efektów to całkiem fajna zabawa :)
charts.png