Source of packages/Combie/Html/Link.php
<?php
/**
 *
 *
 * @author Combie <uli@combie.de>
 * @version $Id$
 * @package Combie
 * @subpackage Html
 */
 
 namespace Combie\Html;
/**
 * Linkbuilder
 *
 * @package Combie
 * @subpackage Html
 */
class Link
{
  private $parts = NULL;
  private $seperator = '&';
  
  public function __construct($url,$seperator='&')
  {
    $this->seperator = $seperator;
    $this->parts = parse_url($url);
    if(!empty($this->parts['query']))
    {
      $params = explode($seperator,$this->parts['query']);
      $this->parts['query'] = array();
      foreach($params as $param)
      {
        list($key,$value)= explode('=',$param);
        $this->parts['query'][urldecode($key)] = urldecode($value);
      }
    }
  }
  
  public function setParam($key,$value)
  {
    $this->parts['query'][$key] = $value;
  }
  
  public function getParam($key)
  {
    return $this->parts['query'][$key];
  }
  
  public function delParam($key)
  {
    unset($this->parts['query'][$key]);
  }
  
  public function __get($part)
  {
    if(!isset($this->parts[$part])) return FALSE;
    return $this->parts[$part];
  }
  
  public function __set($part,$value)
  {
    $this->parts[$part] = $value;
  }
  
  public function getUrl()
  {
    $url  = $this->parts['scheme'];
    $url .= '//:';
    $auth = isset($this->parts['user'])?$this->parts['user']:'';
    $auth .= ':';
    $auth .= isset($this->parts['pass'])?$this->parts['pass']:'';
    $auth .= '@';
    if(strlen($auth)>2)
      $url .= $auth;
    if(!empty($this->parts['host']))
      $url .= $this->parts['host'];
    if(!empty($this->parts['port']))
      $url .= ':'.$this->parts['port'];
    if(!empty($this->parts['path']))
      $url .= $this->parts['path'];
    $query = '';
    $teile=array();
    foreach($this->parts['query'] as $key => $value)
    {
      $teile[]= urlencode($key).'='.urlencode($value);
    }
    $query = implode($this->seperator,$teile);
    if(!empty($query))
      $url .= '?'.$query;
    if(!empty($this->parts['fragment']))
      $url .= '#'.$this->parts['fragment'];
    return $url;
  }
}
/*  public function __toSring()
  {
    return getUrl();
  }
$url      = 'http://www.schoeneseite.com/index.php?var1=1234&var2=98';
$urlobj = new url($url);
$urlobj->user = 'willi';
$urlobj->pass = 'geheim';
$urlobj->fragment = 'anker';
$urlobj->seperator = '&';
$urlobj->setParam('affe','2 3+ÃÂöÃÂär');
echo '<pre>'.var_export($urlobj,TRUE).'</pre>';
echo '<pre>'.var_export($urlobj->query,TRUE).'</pre>';
echo htmlentities($urlobj->getUrl());
*/
 
?>