nedelja, november 04, 2007

Nizi in ubežni znaki v PHP

Nek niz znakov v PHP lahko izpišemo s funkcijo print ali echo:
print "Pozdravljeni obiskovalci";
Zgornji stavek izpiše "Pozdravljeni obiskovalci". Znaki, ki so obdani z dvojnimi narekovaji torej predstavljajo niz. PHP teh znakov ne obdeluje, torej če bi zapisali "50+100", PHP tega ne bi videl kot aritmetično operacijo, temveč kot niz znakov in jih v taki obliki tudi izpisal:
print "50+100";

Druga možnost je uporaba enojnih narekovajev. Oba zgoraj navedena primera, bi enako delovala, če bi uporabili enojne narekovaje. Razlika se pokaže, ko želimo v niz dodati še nek drug niz, ki je shranjen v svoji spremenljivki. Poglejmo primer:

$stevilo_obiskovalcev = "5000 obiskovalcev";

printf "Spletno stran je obiskalo $stevilo_obiskovalcev.";
printf 'Spletno stran je obiskalo $stevilo_obiskovalcev.';

Zgornji primer bi izpisal:
Spletno stran je obiskalo 5000 obiskovalcev.
Spletno stran je obiskalo $stevilo_obiskovalcev.

Pri zapisu z dvojnimi narekovaji vidimo, da se uporabi vrednost spremenljivke, medtem ko se pri uporabi enojnih narekovajev izpiše besedilo kot je vidno v kodi.


Kako pa postopamo, ko želimo v našem nizu uporabiti enojne ali dvojne narekovaje? Enostavno, pomagamo si s tako imenovanimi ubežnimi znaki (ang.: escape characters), ki seveda zmorejo še veliko več. Poglejmo nekaj primerov:

print "Če želimo izpisati \"dvojne narekovaje\" uporabimo pred narekovajem poševnico nazaj (\)";
print 'Bolj pregledno je, če uporabimo "enojne narekovaje", med njimi pa lahko poljubno uporabimo dvojne narekovaje';

Ubežni znaki pomagajo urediti izgled zapisane kode in ne izgled same strani, kot jo vidi obiskovalec. Poskusite zapisati nekaj stavkov PHP kode in nato poglejte kodo vaše strani. Videli boste, da je koda dokaj nepregledna in se večinoma nadaljuje v dolgih, neprekinjenih vrsticah.

Takšno kodo lahko uredimo z uporabo naslednjih ubežnih znakov:
\n pomeni new line
\t pomeni tab
\r pomeni carriage return

Še primer:

print "To je prva vrtica na zaslonu in v kodi;
print "To je druga vrstica na zaslonu vendar še vedno prva v kodi;
print "\nTo bo tretja vrstica na zaslonu in druga v kodi";
print "\n\tVrstica, ki je v kodi zamaknjena";

Vidimo, da izgled na strani določamo z običajnim XHTML, medtem ko za ustrezen izgled kode poskrbimo z ubežnimi znaki.






torek, oktober 30, 2007

Dreamweaver CS3 ni prebavil menjave ure

Tisti, ki uporabljate Dreamweaver CS3, ste morda že opazili, da se je program začel zelo pogosto sesuvati, po tem ko v njem odprete datoteko, ki vsebuje nekaj PHP ali ASP kode. Za sesuvanje niste krivi sami, s slabo napisano kodo, ampak je kriva, ne boste verjeli, ura. Izkazalo se je, da Dreamweaver CS3 ni dobro prenesel premika ure.

Stabilno delovanje si povrnete tako, da izbrišete datoteko WinFileCache-*.dat. Zvezdica v tem primeru pomeni, da je v imenu datoteke še nekaj naključnih znakov, ki pa se razlikujejo od računalnika do računalnika. Najbolje, da v iskalnik operacijskega sistema vpišete začetni del imena datoteke, torej WinFileCache, nato pa datoteko izbrišete.

Se pa datoteka nahaja v XP-jih na lokaciji:
C:\Documents and Settings\\Application Data\Adobe\Dreamweaver 9\Configuration
V Visti pa:
C:\Users\\AppData\Roaming\Adobe\Dreamweaver 9\Configuration

Po izbrisu, ponovno zaženite Dreamweaver CS3 in si oddahnite

ponedeljek, oktober 15, 2007

Tabele v PHP

Če v PHP-ju potrebujemo spremenljivko, ki lahko vsebuje več elementov, lahko za to uporabimo kar tabelo (ang. array). Element je lahko število, niz ali pa zopet tabela.

PHP pozna dve vrsti tabel: indeksne in asociativne. V indeksni tabeli je vsak element določen s številko (indeksom), v asociativni pa z nizom znakov (asociacijo).

Primer izdelave indeksne tabele:
$tabelaStevil = array(24, 55, 40, 10);

Ni nujno da so vsi elementi tabele istega tipa:
$mesanaTabela = array(24, "Martin", 110, "Krpan");

Do vseh elementov tabele najlažje dostopimo z uporabo zanke foreach:

foreach ($tabelaStevil as $stevilo) {
echo "$stevilo";
}


Izpis:
24
55
40
10

Do posameznega elementa indeksne tabele dostopimo tako, da v oglatem oklepaju navedemo indeks (lokacijo) elementa, ki ga želimo izpisati ali uporabiti.

echo "$tabelaStevil[2]";

Izpis: 40
(pozor, prvi element tabele ima indeks 0 in ne 1, zato gre v našem primeru za tretji element tabele, ki pa se nahaja na indeksu 2)

Dodajanje je enostavno, dva primera
$tabelaStevil[2] = 5 ; element, ki se nahaja na indeksu 2 v tabeli, prepišemo z vrednostjo 5
$tabelaStevil[] = 100; dodali smo element na konec tabele


Pa poglejmo še kreiranje asociativne tabele:
$oseba = array('ime'=>'Martin', 'priimek'=>'Krpan');

Do imena osebe lahko sedaj enostavno pridemo z uporabo asociacije 'ime':
echo "$oseba['ime']";
Izpis: Martin

četrtek, oktober 04, 2007

Živimo v čistem okolju in pika


Najlepše je živeti v prepričanju, da je okoli nas vse rožnato, urejeno in pospravljeno. Vendar če le za kratek čas zapustimo domače štiri stene in stopimo nekaj korakov v naravo, lahko zelo hitro vidimo realno sliko: umazanija, svinjarija na vsakem koraku.

In kdo je kriv. Pravzaprav vsi, saj naredimo premalo za ohranjanje čistega okolja in si v večini primerov zatiskamo oči. Vendar se nam to na dolgi rok ne bo obrestovalo.

Pred časom je podjetje Infoterra d.o.o. na področju Ljubljanskega Barja sprožilo akcijo za preprečitev divjih odlagališč. Organizirali so več čistilnih akcij ter preko svoje spletne strani www.barje.net in drugih medijev obveščali o napredku.

Izkazalo se je, da obstaja nekaj posameznikov, ki jim ni vseeno v kakšnem okolju živimo, vendar je le teh premalo in imajo premalo vpliva. Ministrstvo za okolje, inšpekcijske službe, lokalne skupnosti, pa tudi policija ne naredijo skoraj nič za preprečevanje divjih odlagališč na Ljubljanskem Barju.

Zato se je nekaj organizacij dogovorilo, da bodo z akcijo Je komu mar? poskusilo prepričati državne službe in posameznike, da poskrbijo za zaščito Barja. V ta namen bodo po Ljubljani opozarjali tudi večji panoji, vsi pa lahko samo upamo, da se bo ta problematika že enkrat začela reševati za dobro vseh nas. Preberite si tudi mnenja predsedniških kandidatov.