evidencemhd.wz.cz

evidenční přehledy autobusů, trolejbusů a tramvají

Právě se nacházíte v sekci: PHP a webdesign

Nehledáte "Změna velikosti obrázku v PHP"? Pokud ano, napsal jsem na toto téma článek.

PHP, webdesign a já

Webdesign

Můj zájem o webdesign začal docela nevinně: někdy v dubnu 2003 mě začalo být podezřelé, že se mi některé stažené stránky špatně zobrazují, například bez obrázků a bez stylů. Zjistil jsem ale, že obrázky jsou normálně uloženy v související složce, tak jsem pátral, kde je chyba. Nějak náhodou jsem si zobrazil zdrojový kód stránky a samozřejmě jsem té spleti znaků vůbec nerozuměl. To mě trochu popudilo, a vzpomněl jsem si, že v časopise ABC (měl jsem ho předplacené od roku 1999) se někdy obejvil seriál o tvorbě webových stránek. Jen tak pro zajímavost to bylo asi deset čísel z přelomu let 2000 a 2001. Hned jsem se vrhl do studia a za dva týdny už jsem byl schopen výše zmíněnou nefungující stránku opravit. No a tak jsem se dostal k webdesignu. Postupně jsem zkoušel další a další věci. Začal jsem pak vytvářet inventární přehledy autobusů v jednotlivých pražských provozovnách. Inventární přehledy vozidel mě velmi zajímaly, a tak jsem začal tvořit i přehledy mimopražských DP. Nejprve České Budějovice, pak Ostravu, se kterou jsem si vyhrál přes Vánoce 2003. Pak už to šlo rychle a najednou jsem měl zdokumentováno přes 10 měst. To bylo v půlce roku 2004. Pak jsem si řekl, že by to chtělo ty stránky udělat trochu graficky lepší. Kamarád mi tenkrát přinesl staženou verzi stránek Jak psát web a nastalo další studium. Tak jsem se naučil základy CSS. Na podzim 2004 jsem umístil ony stránky na internet, adresa byla evidencemhd.aktualne.cz. Bohužel v únoru 2005 jsem aktualizoval hlavní stránku a jaksi jsem tam zapomněl nějak dát zpátky banner. Nezobazovala se mi pak reklama a tak mi stránky zavřeli. To už jsem stejně ale chtěl provést větší předělávku, tak mi to ani nevadilo. Netrvalo dlouho a zjistil jsem, že už je jaksi obtížné provádět aktualizace. Třeba když se vyřadilo jedno vozidlo, bylo potřeba aktualizovat počet asi na třech stránkách, čili nic moc. Hledal jsem možnost, jak to nějak zautomatizovat, zkoušel jsem i Javascript, ale i ten na to byl nějak slabý. Pak jsem se nějak dostal k serverovým skriptům a databázím, konkrétně tedy PHP a MySQL. Začátky byly těžké, ale to tak bývá. Bláhově jsem si myslel, že provedu převod dat do databáze a za několik měsíců spustím stránky v původním rozsahu. To se samozřejmě nestalo. Nejprve jsem začal Ostravou, pak následovala Opava, Pardubice a na začátku roku 2006 jsem do databáze naládoval i Plzeň (pak trvalo asi půl roku, než jsem Plzeň přidal i na web). Od podzimu 2005 jsou stránky zase v provozu na současné adrese. Za tu dobu jsem už provedl několik razantních změn designu a v dubnu 2006 jsem si řekl, že bych mohl na stránkách mít i jiné informace než jen přehledy vozidel, takže od té doby se snažím vytvořit v každém městě krátkou historii tamní MHD. V současnosti (2010) jsem od toho opět upustil, protože studium na ČVUT mě jaksi více zaměstnává a není na to čas. Původní verzi stránek (fungující offline) si můžete stáhnout zabalenou ve formátu rar (217 KB).

Já a PHP

Moje schopnosti v PHP se dlouho omezovaly na databáze. Postupem času jsem začal dělat i složitější věci. Na začátku roku 2006 mě oslovil autor projektu czechpark.com (projekt je nejspíše od určité doby opuštěný), že by potřebovali nějaký redakční systém. Tak jsem ho začal vytvářet, a když jsem větší část dodělal, mistr se nějak přestal ozývat. Nepovažuju to za krádež (systém jsem mu posílal, ale nebyl nikdy zprovozněn) ani za ztrátu času (naučil jsem se práci se soubory a změnu velikosti obrázku v PHP). Dále jsem vytvořil pro kamaráda jakéhosi webového správce souborů, neznám adresu, tak sem dávám odkaz na stažení (zip, 44 KB). Poznámka (2010): Je to docela primitivní aplikace, umí v podstatě jen procházet adresářovou strukturou a nahrávat soubory a design je také z dnešního pohledu poněkud nevyzrálý. Ale každý se všechno nějak musel naučit :-)

BESS

Tohle je můj nejrozsáhlejší projekt. Jedná se o systém na analýzu návštěvnosti, který jsem začal vyvíjet na jaře 2006 pro potřeby svých stránek, protože jsem zjistil, že TOPList mi nějak nevyhovuje, zejména proto, že tam nejde zobrazit statistika celkem, tedy za období od registrace stránek až do dneška. Při vývoji BESSu (Bážův Experimentální Statistický Systém) jsem využil některé myšlenky z článku o vývoji vlatního statistického systému na interval.cz (odkaz na článek). 20.4.2006 jsem BESS spustil naostro. Od té doby ho v podstatě neustále vylepšuji a přidávám nové funkce. Vytvořil jsem i veřejnou verzi, kterou si můžete stáhnout (zip, 927 KB). Fungující verzi si můžete prohlédnout přímo na tomto webu (sekce Návštěvnost v levém sloupci). Uživatelský manuál se screenshoty a návodem k instalaci a nastavení, stejně jako další dokumentace a samozřejmě aktuální verze BESSu, je k dispozici na mém osobním webu jan-bazant.wz.cz.

Systém funguje na principu ukládání dat do databáze na vlastním serveru (stejném serveru, kde běží Vaše stránky). Potřebujete tedy podporu PHP (verze 4.3 by měla stačit) a MySQL (minimálně 4.1, většina webhostingů už má i 5.x). Má to tu výhodu (oproti např. Toplistu), že když fungují Vaše stránky, bude fungovat i statistický systém (tím rozhodně nechci říct, že je Toplist nespolehlivý, ještě se mi nestalo, že by měl výpadek, ale znáte to, člověk nikdy neví). Další výhoda: určitě znáte situaci, kdy celá stránka je již načtená, ale ještě se čeká na nějaké "měřidlo", jako například obrázek TOPListu nebo na Google Analytics. Jelikož tyto servery bývají velmi zatíženy, trvá to občas docela dlouho. Pokud je ale toto "měřidlo" na stejném serveru jako Vaše stránky, je to obvykle velmi rychlé. Datová náročnost je zhruba 0, 5 MB místa v databázi za rok (podle počtu návštěv).

Zapomenuté utilitky

Postupem času jsem potřeboval řešit různé menší problémy, tak jsem si občas napsal jednoduchý prográmek v PHP, který to vyřešil. Některé stále používám, jiné již nejsou potřeba a upadly v zapomnění. To se týká i následujících třech. Důvod, proč se o nich zmiňuji, je ten, že při úpravě tohoto textu v červnu 2010 mi bylo jednoduše líto ty texty mazat...

Decode

Ve všech pobočkách pražské městské knihovny (kam jsem do roku 2008 chodil na internet, protože jsem ho doma neměl) v roce 2006 přeinstalovali počítače, od té doby tam je Linux (místo Windows NT) a jako prohlížeč Firefox, verze 1.5 (na některých počítačích je už i verze 2; psáno 2007). Menší problém je, že když si ukládám stránku, v jejímž názvu je diakritika, provede se překódování těchto písmen ve zdrojovém kódu do kódování UTF-8 a pak ještě url-zakódování. Tento zápis pak pochopí Mozilla i Opera, ale MSIE ne. Proto jsem si vytvořil takovou utilitku, která to rozkóduje.
Důvod opuštění: problém souvisel s tím, že do října 2007 jsem měl ne moc výkonný počítač z roku 1997 a Firefox na něm neběhal zrovna nejrychleji, proto jsem používal IE 6, který měl onen zmíněný problém. Nevím, jestli problém nebyl způsoben nedostatečnou podporou UTF-8 ve Windows ME, každopádně od října 2007 mám nový stroj a používám Firefox a důvod k používání této utilitky pominul.

HTMLRenamer

Občas se mi stane, že si potřebuji uloženou stránku přejmenovat, třeba kvůli archivaci. Pokud však má s sebou nějaké soubory, není to tak jednoduché, protože je pak třeba změnit název složky i ve zdrojovém kódu. To řeší HTMLRenamer.
Důvod opuštění: tenhle prográmek pracoval tak, že vstupní soubor se vložil jako kdybych ho chtěl poslat na server, a Javascriptem se ze vstupního pole přečetla celá cesta k souboru, která byla potřeba. Firefox byl ovšem poslední, který nepracoval podle specifikace, která říká, že Javascriptu by měl být dostupný jen název souboru, ne celá cesta. Verze 3 to spravila a tak jsem tento prográmek v podstatě nemohl používat a na podzim 2008 jsem ho přepsal do C#. Na mém osobním webu je aplikace ke stažení.

HTMLGrouper

Tady jde o úsporu místa: když si stáhnu víc stránek z jednoho serveru, jsou v každé složce (obvykle) stejné obrázky, skripty a stylopisy. Pokud mám takovýchto stránek stažených hodně, může seskupení těchto souborů přinést docela slušnou úsporu místa. HTMLGrouper vezme zdrojový kód HTML stránky, najde adresy obrázků a dalších věcí, najde původní složku a tyto soubory zkopíruje do složky se společnými soubory.
Důvod opuštění: Toto mělo velký smysl na mém starém počítači, který měl 2 GB disk a v posledním roce provozu již zbývalo posledních 50 MB volného místa, takže jsem musel šetřit kde se dalo. Navíc pracoval podobně jako výše zmíněný HTMLRenamer a ve Firefoxu 3 také nešel použít. V roce 2010 jsem se po zimním zkouškovém období trochu nudil, tak jsem si tuto aplikaci přepsal rovněž do C#, ve kterém jsem se tak dále zdokonalil.

M@estro 2007 - 2010