Čitanje Excel fajlova iz PHP-a

Verujem da je svako od developera bar jednom u svojoj karijeri imao potrebu da importuje podatke iz nekog Excel fajla. Bez obzira da li se radi o cenovniku ili listi leadova koji morate iz Excela importovati u bazu, postupak je gotovo uvek isti. Prvo što radite je export Excel fajla u običan txt fajl (csv, xml, …) a zatim parsovanje podataka (radi importa u bazu i sl.). Prilično zamoran postupak, pogotovo ako ga morate raditi često, recimo za update cenovnika i sl.

Zahvaljujući besplatnoj phpexcelreader klasi, gore opisan postupak može biti prošlost. Jednostavno, sa phpexcelreader klasom podacima u Excelu možete pristupiti direktno referencijanjem indeksa reda odnosno kolone. Što je najlepše od svega, ova klasa podržava UTF-8 encoding, tako da neće biti problema sa našim slovima. Evo kratkog primera kako to u praksi izgleda.
Read More

PHP FAQ

Posle otkrića da je elitesecurity forum osetljiv na XSS (cross site scripting) hakeri su očigledno iskoristivši pomenuti propust napali ES i tom prilikom preuzeli privilegije pojedinih super modova tamo. Tom prilikom obrisali su gomilu tema, a nažalost i dosta top tema koje sam svojevremeno kao moderator postavljao na PHP forum.

Srećom, možda najvrednija od svih koje sam tamo pisao (barem za početnike) PHP FAQ je preživela. Da ne bih čekao novu sramotu EliteSecurity-a i dopustio da i ova tema ode u nepovrat skinuo sam ceo tekst i rešio da ga postavim ovde. Verujem da će tekst biti od koristi svima koji počinju da se bave PHP-om.

Read More

php5 mysqli on windows

Za neupućene, mysqli (skraćeno od MySQL Improved) je nova php ekstenzija dostupna od verzije 5. MySQL Improved donosi novi objektno orijentisan api koji u potpunosti iskorišćava nove mogućnosti MySQL-a 4.1.

Dokumentacija mysql extenzije dostupna je na http://www.php.net/mysqli. Ono što ovoj dokumentaciji nedostaje jeste postupak za instalaciju mysql ekstenzije na Windows-u (u manualu je opisan samo postupak za *nix servere).

Na Windows-u php ekstenzije uobičajeno se instaliraju tako što se “unkomentuje” odgovarajuća linija u “Dynamic Extensions” sekciji fajla php.ini. Problem sa mysqli-om je – linija koja sadrži ime mysqli ektenzije ne postoji. Od mysql ekstenzija tu je samo :

extension=php_mysql.dll

ali to je ekstenzija koja sadrži samo standardne mysql biblioteke.

Brzo “googlanje” i pretraga PHP dokumentacije nisu bili od pomoći. Nakon kopanja po listi extenzija u ext dir-u, shvatio sam da mysqli extenzija ipak postoji ali nekim čudom nisu je stavili u php.ini.

Dakle, za instalaciju mysqli-a treba dodati sledeću liniju u “Dynamic Extensions” sekciju fajla php.ini:

extension=php_mysqli.dll

Napominjem da (barem na Windowsu) mysqli može raditi zajedno sa starim mysql bibliotekama, tj. da bi uključili mysqli nije neophodno da isključite mysql extenziju. Ovo je zgodno ako imate neke druge projekte na lokalnom serveru koji koriste stare biblioteke, a želite da koristite i nove (recimo u novim projektima). Na linuxu se isto preporučuje samo ako se koristtite iste biblioteke (one koje dolaze uz sam mysql).

Nakon izmene php.ini fajla, restartujte vaš Web server i uživajte u mogućnostima nove mysql biblioteke.