Problem
: Ham bir URL'yi alip icindeki parcalari teker teker ayirmak
ve anlamli bir sekilde bir dizinin elemanlari yapmak istiyorsunuz.
Cozum : parse_url () ve parse_str ()
fonksiyonlarini kullanarak sonuca ulasabilirsiniz.
Tartisma : Bir URL yapisi geregi bazi parcalardan olusmustur.Bu
yapi icerisinde baglanti protokolunun adi,domain adresi,yol
ve bunun gibi kisimlar yer almaktadir.
parse_url () fonksiyonu ile, kendimize ozgu reg.exp
yazmadan rahatlikla isin icinden cikmak ve kolayca sonuca
ulasmak mumkundur.
$url = 'http://www.turk-php.com/profiles.php?Author=Admin&';
$url .= 'AuthorEmail=ebbg@ghex-cuc.pbz&AuthorURL=http://www.turk-php.com';
$url_parcalari = parse_url ($url);
$url_parcalari isimli degiskenimiz artik "karekter indeksli"
bir dizidir.Bu dizi icerisinde asagidaki veriler saklanmaktadir:
Scheme -- "http"
Host -- "www.turk-php.com"
Path -- "/profiles.php"
Query -- "Author=Admin&AuthorEmail=ebbg@ghex-cuc.pbz&AuthorURL=http://www.turk-php.com"
Bu fonksiyon ayni zamanda "port","user","pass" ve "fragment"
bilgilerini de dondurur.Tabii ki bu ek bilgiler tamamen
bizim URL'mizin tipine baglidir.Zaten yukaridaki gibi basit
bir URL yi fonksiyona gecirmis isek bu tip gelismis veriler
fonksiyonun sonucunda donmeyecektir.
parse_str fonksiyonu ile "Query" elementi icindeki
verileri isliyorum.Bir ornek vermek istersek,
parse_str ($url_parcalari["query"]);
yazdigim zaman scriptimde soyle degiskenler yaratiyorum
:
$Author
$AuthorEmail
$AuthorURL
Not: parse_str () fonksiyonu kullanilmasa da PHP otomatik
olarak "Query" icindeki ifadeleri birer PHP degiskeni sekline
getirir.
Serkan Hadi Ceylani
serkan@turk-php.com
|