2009年8月2日 星期日

PHP:URL利器-http_build_query及parse_url

偶然間看到的不錯用的兩個函式http_build_query及parse_url


http_build_query()


他是PHP 5加入的函式,主要可以幫助我們置作GET跟POST要用的query

PHP手冊
http://tw.php.net/http_build_query

平常我們要下query的時候都會自己組合

http://xxx.xxx/xxx?id=1&title=2

如今PHP提供我們這個函式,就可以用可讀性比較高的方法來替我們做了


$query=array(
'id'=>1,
'title'=>2
);

echo http_build_query($query);


output:id=1&title=2

上面是一個比較簡單的例子,透過一個關聯式array來替我們製造http query
上面的array內容可以替換成我們須要的變數來優美的去置作query

$id=1;
$title=2;
$query=array(
'id'=>$id,
'title'=>$title
);

echo http_build_query($query);



這樣一來就能更有彈性的來撰寫我們的程式,而不用暴力的字串連結來下query
手冊裡面有更多進階的範例可以看

parse_url



PHP手冊
http://tw.php.net/manual/en/function.parse-url.php

如同字面意思,可以幫我們解析一個URL,他會幫我們把URL拆解成幾個部份
  • scheme - e.g. http
  • host
  • port
  • user
  • pass
  • path
  • query - after the question mark ?
  • fragment - after the hashmark #

直接拿手冊上的例子來看

$url = 'http://username:password@hostname/path?arg=value#anchor';

print_r(parse_url($url));



他的output

Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)


這個函式會回傳一個關連式陣列,如此一來可以替我們的程式增加可讀性

沒有留言: