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.
Anwendungsbeispiel: URL-Bestandteile ändern.
Übrigens: Wer die Funktion http_build_url() zur Verfügung hat, kann auch diese nutzen.
<?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.
