Pear::Net_URLでURLを分解する
HTTP_Request と依存関係のある Net_URL(1.0.14) は URL を各要素に分解したり QueryString を追加削除できます。
分解される内容は、次のようになります。
- Protocol(http)
- Username(ユーザ名)
- Password(パスワード)
- Server(www.bnote.net)
- Port(80)
- Path(/php)
- Querystring(パラメータ名と値の連想配列)
- Anchor(アンカーのname#)
- Full URL(URL全体)
コンストラクタの第一引数にURLを渡すことでURLを分解します。結果は、メンバ変数に保存されます。
<?php
ini_set('include_path', 'libs' . PATH_SEPARATOR . ini_get('include_path'));
include('Net/URL.php');
$url = new Net_URL('http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=bnote+Pear&num=50');
?>
<html>
<body>
<pre>
Protocol...: <?=$url->protocol?>
Username...: <?=$url->user?>
Password...: <?=$url->pass?>
Server.....: <?=$url->host?>
Port.......: <?=$url->port?>
File/path..: <?=$url->path?>
Querystring: <?print_r($url->querystring)?>
Anchor.....: <?=$url->anchor?>
Full URL...: <?=$url->getUrl()?>
</pre>
</body>
</html>
Querystring の追加削除には、 addQueryString と removeQueryString を使用します。
追加は、パラメータ名と値、URLエンコードをするかしないかを指定します。
addQueryString('start', 50, true);
削除は、パラメータ名を指定します。
removeQueryString('start');