Pear::Net_URLでURLを分解する

メモ:  Category:pear

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');

bluenote by BBB