Home-Produkte-Testarea-Kontakt-Datenschutz-Aktualisiert: 22-Mar-2006
< Voriger Tag   Nächster Tag >

Mittwoch, 22. März 2006

PHP: ydnetParseURL - Wrapper für parse_url()

Eine Wrapper-Funktion für parse_url(), die die nicht in einer URL enthaltenen Bestandteile auf Default-Werte setzt, so dass es auch ohne isset()-Abfrage keine "Notice: Undefined index"-Fehlermeldungen gibt.

<?php

function ydnetParseURL($url)
/* Wrapper für parse_url(), der die nicht in einer URL enthaltenen
   Bestandteile auf Default-Werte setzt, so dass es auch ohne
   isset()-Abfrage keine "Notice: Undefined index"-Fehlermeldungen 
   gibt (E_ALL).
   
   scheme: Wird auf 'file' gesetzt falls keine Angabe wie
           'http://' enthalten ist.
           
   port  : Wird auf null oder bei http, https, ftp und ftps auf die
           jeweilige Default Portnummer, z.B. 80 bei http, gesetzt.
           
   andere: Alle anderen Werte werden auf den Leerstring '' gesetzt,
           falls sie nicht angegeben sind.
*/                           
{
    $defaultPorts = array('http'  =>  80,
                          'https' => 443,
                          'ftp'   =>  21,
                          'ftps'  => 990);
                          
    $url = parse_url($url);
    if(false === $url)
    {
        return $url;
    }
    
                         
    if(!isset($url['scheme'])){$url['scheme'] = 'file';}
    if(!isset($url['host']))  {$url['host']   = '';}
    if(!isset($url['port']))
    {
        if(isset($defaultPorts[$url['scheme']]))
        {
            $url['port'] = $defaultPorts[$url['scheme']];
        }
        else
        {
            $url['port'] = null;
        }    
    }
    
    if(!isset($url['user']))    {$url['user']     = '';}
    if(!isset($url['pass']))    {$url['pass']     = '';}
    if(!isset($url['path']))    {$url['path']     = '';}
    if(!isset($url['query']))   {$url['query']    = '';}
    if(!isset($url['fragment'])){$url['fragment'] = '';}
    
    
    return $url;
}// ydnetParseURL


$url = ydnetParseURL('http://www.example.org/');
var_dump($url);
?>

Ausgabe für http://www.example.org/

array(8) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(15) "www.example.org"
  ["path"]=>
  string(1) "/"
  ["port"]=>
  int(80)
  ["user"]=>
  string(0) ""
  ["pass"]=>
  string(0) ""
  ["query"]=>
  string(0) ""
  ["fragment"]=>
  string(0) ""
}

[Direktlink]

< Voriger Tag   Nächster Tag >

  RSS V0.91

<März 2006 >
  0102030405
06070809101112
13141516171819
20212223242526
2728293031  

Home-Produkte-Testarea-Kontakt-Datenschutz-Aktualisiert: 22-Mar-2006
(C) 2000-2018 by Sven Drieling