Gegenteil von parse_url()

Januar 2011

Folgende Funktion compile_url() stellt das Gegenteil von parse_url() dar. Sie benötigt als Argument ein Array, wie es von parse_url() zurück gegeben wird.
<?php
function compile_url($parts){
    
$url '';
    if(isset(
$parts['scheme'])){
        
$url .= $parts['scheme'].':';
        if(
$parts['scheme']!=='mailto' && $parts['scheme']!=='callto' && $parts['scheme']!=='tel')
            
$url .= '//';
    }
    if(isset(
$parts['user'])){
        
$url .= $parts['user'];
        if(isset(
$parts['pass']))
            
$url .= ':'.$parts['pass'];
        
$url .= '@';
    }
    if(isset(
$parts['host']))
        
$url .= $parts['host'];
    if(isset(
$parts['port']))
        
$url .= ':'.$parts['port'];
    if(isset(
$parts['path']))
        
$url .= $parts['path'];
    if(isset(
$parts['query']))
        
$url .= '?'.$parts['query'];
    if(isset(
$parts['fragment']))
        
$url .= '#'.$parts['fragment'];

    return 
$url;
}
?>

Anwendungsbeispiel: URL-Bestandteile ändern.
<?php
$url 
'http://www.example.com/story.php#abs-3';
$parts parse_url($url);
$parts['host'] = 'andere-domain.ch'// Host ändern
$parts['query'] = 'seite=2'// Query-String hinzufügen
$url compile_url($parts);
echo 
$url// http://andere-domain.ch/story.php?seite=2#abs-3
?>

Übrigens: Wer die Funktion http_build_url() zur Verfügung hat, kann auch diese nutzen.
 


Andere Einträge