Archiwum

Posty oznaczone ‘php’

Magiczne stałe PHP

17 czerwca 2010 Brak komentarzy

Stałe noszące miano „magicznych” w języku PHP to zbiór stałych które posiadają przedefiniowaną i niezmienną wartość, jednak jest ona określona jedynie w obrębie wykonywania danego skryptu.

Oznacza to że w przypadku innego pliku wartości poszczególnych stałych będą inne. Mało tego, niektóre z nich mogą zmieniać swą zawartość w zależności od miejsca wywołania (np.: wew. funkcji czy metody klasy).

Owe „magic constans” są jednak bardzo przydatne w programowaniu w PHP i każdy powinien je znać, aby niepotrzebnie nie wynajdywać od nowa przysłowiowego koła. Zapraszam do zapoznania się z nimi.

Czytaj więcej…

Kategorie:Programowanie Tagi:, , ,

Podświetlanie składni PHP

10 czerwca 2010 Brak komentarzy

Szybki wpis pod tytułem, jak podświetlić składnię języka PHP w samym PHP. Sprawa jest dziecinnie prosta, i sprowadza się do użycia jednej z dwóch wbudowanych funkcji samego języka:

mixed highlight_string  (  string $str  [,  bool $return = false  ] )

…lub:

mixed highlight_file  (  string $filename  [,  bool $return = false  ] )

Pierwsza koloruje i wyróżnia składnię w zadanym ciągu znaków, druga z kolei w podanym pliku. Prosty przykład demonstrujący działanie:

<?php
  $var = 'Ten skrypt PHP podswietla skladnie samego siebie';
  $num = 1024;
  highlight_file(__FILE__);
?>

Klasyka PHP – licznik odwiedzin

27 marca 2010 4 komentarze(y)

Dlaczego klasyka? Gdyż to chyba jeden z najpopularniejszych skryptów o jakich myśli każdy początkujący programista PHP. Fakt faktem, że przy dzisiejszych usługach typu Google Analytics jest to mało komfortowe rozwiązanie i nie dostarcza wielu informacji, nie mniej na pewno dużo satysfakcji :) .

Bez zbędnego przedłużania przechodzimy do sedna sprawy. Nasz licznik będzie maksymalnie uproszczony – będzie zliczał każde przeładowanie strony. Aby zbytnio się nie napracować skorzystamy z funkcji file_get_contents oraz file_put_contents do przechowania aktualnego stanu licznika w pliku.

Czytaj więcej…

If…else czy return?

15 marca 2010 2 komentarze(y)

Trudno wymyślić sensowny tytuł dla zagadnienia które chcę opisać. Zawsze zastanawiało mnie czy pisząc w PHP funkcję która początkowo przeprowadza walidację przekazanych argumentów, stosować konstrukcję typu:

function nazwa($argument)
{
  if (warunek)
  {
    return FALSE;
  }
  ... ciało funkcji
}

…czy też:

function nazwa($argument)
{
  if (warunek)
  {
    return FALSE;
  }
  else
  {
    ... ciało funkcji
  }
}

Intuicyjnie może się wydawać że pierwszy metoda będzie działać szybciej, gdyż po spełnieniu warunku wychodzimy od razu z funkcji – parser nie musi przetwarzać reszty kodu. Z kolei w drugiej, mimo iż to co znajduje się w bloku else się nie wykona i tak musi zostać przeczytane przez PHP. Jak jest w rzeczywistości? Sprawdźmy to!

Czytaj więcej…

Referencja w pętli foreach – bug który nie jest bugiem

1 lutego 2010 2 komentarze(y)

Weźmy pod lupę prostą pętle foreach w PHP, która zamienia we wszystkich elementach tablicy litery na duże:

$words = array('system', 'baza', 'telefon');
foreach ($words as &$item)
{
  $item = strtoupper($item);
}

Jak widać, kolejne elementy tablicy pobierane są po przez referencję, tj. tworzony jest wskaźnik na konkretny element a nie jego kopia w pamięci. Dlatego też, zmieniając w pętli zawartość zmiennej $item modyfikujemy pierwotną tablicę. W czym zatem tkwi problem?

Czytaj więcej…

Kopiowanie pliku między serwerami w PHP

23 stycznia 2010 7 komentarze(y)

Swego czasu, gdy publikowałem jeden ze swoich projektów, w celu odciążenia serwera głównego (limit transferu) wysyłałem plik jeszcze na kilka innych. Jako iż jego rozmiar osiągał 30MB, a łącze jakim dysponowałem nie było demonem prędkości, powstał problem – jak przyspieszyć ten proces?

W tym momencie natknąłem się na możliwość kopiowania plików między serwerami przy pomocy skryptu PHP. Serwery dostawców usług hostingowych są wyposażone w bardzo szybkie łącza (z reguły), a co za tym idzie, ściągnięcie pliku z innej lokalizacji trwa sekundy zamiast długich minut jakie ja poświęcałem na wrzucenie pliku na każdy FTP z osobna.

Wszystko co musimy zrobić to napisać prosty skrypt PHP i umieścić go w lokalizacji docelowej – a ten, wykona za nas cała czarną robotę.

Czytaj więcej…

Kodowanie polskich znaków w PHP

26 grudnia 2009 4 komentarze(y)

Prawdziwym problemem dla początkujących programistów PHP, może być nie rzadko brak wyświetlania polskich znaków w skryptach PHP. Zamiast miotać się pomiędzy różnymi edytorami kodu, które w taki czy inny sposób oferują zmianę kodowania pliku, prześledźmy po kolei wszystkie etapy tej przypadłości i rozwiążmy je raz na zawsze.

Przyczyny mogą być różne, od błędnego zapisania pliku, aż po wymuszone kodowanie znaków w nagłówku HTTP. Jeśli spotkałeś się nie raz z popularnymi krzakami na swojej stronie, zamiast polskich znaków diakrytycznych, to zapraszam do przeczytania dalszej części wpisu.

Czytaj więcej…

Własny serwer WWW, instalacja Apache i PHP

14 grudnia 2009 35 komentarze(y)

SerwerW życiu każdego webmastera, czy też developera, nadchodzi taki moment, w którym postanawia on uruchomić własny serwer WWW w celu pracy na lokalnej maszynie. Nikt nie lubi, po każdorazowym zapisaniu skryptu PHP, wrzucać go na docelowy serwer z obsługą PHP tylko po to, aby zobaczyć efekt działania. Dużo wygodniejszym rozwiązaniem, jest skorzystanie z lokalnie postawionego serwera wraz z obsługą PHP oraz bazą danych MySQL.

Istnieją wprawdzie gotowe paczki, zawierające w sobie wszystkie te komponenty, instalowane automatycznie bez zbędnych zabaw z konfiguracją, niemniej jednak, z reguły pakiety te posiadają nieaktualne już wersji programów składowych, czy też instalują nadmiar rzeczy nam zbędnych. Być może ręczna instalacja serwera, parsera oraz bazy danych jest bardziej skomplikowana, jednakże, mamy kontrolę nad tym co, gdzie i jak instalujemy.

Czytaj więcej…

Piszemy parser BBCode

9 grudnia 2009 4 komentarze(y)

BBCode jest to język formatowania wiadomości internetowych, pojawiający się często na forach dyskusyjnych. Głównym założeniem tego skryptu jest ułatwienie osobie nieznającej składni HTML odpowiedniego zmodyfikowania wypowiedzi na jej potrzeby.

Źródło: http://pl.wikipedia.org/wiki/BBCode

Jak dodać obsługę znaczników BBCode do własnej strony, forum czy też systemu komentarzy? Zajmiemy się dziś rozwiązaniem tego problemu przy pomocy wyrażeń regularnych w języku PHP.

Czytaj więcej…