phpbar.de logo

Mailinglisten-Archive

[php] Umkehrfunktion von parse_str?

[php] Umkehrfunktion von parse_str?

Thomas Feyrer Dante_(at)_altmuehlnet.de
Thu, 27 May 1999 16:03:39 +0200


Hi,

At 14:37 27.05.99 +0200, you wrote:
>  Ich habe ein PHP-Skript das aus einem HTML-Form heraus aufgerufen
>wird; die Datenuebergabe geschieht mit "GET". Dabei werden ja
>verschiedene Umwandlungen der (String-)Argumente vorgenommen, so z.B.
>die Spaces durch "+" ersetzt etc.
>
>  Nun moechte ich (zusaetzlich) eine solche URL inkl. der Argumente "von
>Hand" erzeugen, und das Skript nicht aus einem Form heraus aufrufen.
>Also muessen die String-Argumente wieder umgewandelt werden. Gibt es
>dazu eine Funktion? Fuer den umgekehrten Weg habe ich parse_str
>gefunden...

du müsstest urlencode() verwenden, allerdings ist das nicht ganz so
komfortabel wie parse_str() für die umgekehrte methode...

hier ein kleiner work-around:
<SCHNIPP>
function create_str( $dp, $array ) {
    $dp .= "?";
    $soa = sizeof( $array ) - 1;
    for( $i=0; $i<$soa; $i++ ) {
        $dp .= urlencode( $array[$i] )."=".urlencode( $GLOBALS[$array[$i]]
)."&";
    }
    $dp .= urlencode( $array[$soa] )."=".urlencode( $GLOBALS[$array[$soa]] );
    return $dp;
}
</SCHNAPP>

$dp ist dann die domain und der pfad zum script, z.B.
"http://x.com/script.php3" aber auch nur "script.php3"...
und $array enthält ein array mit den namen der variablen, also z.B. array(
"first", "second", "third" )

hier ein anwendungsbeispiel:
$first = "der erste wert";
$second = "der zweite wert";
$sth = "sth züm éncödèn";
$url = create_str( "http://www.meinserver.de/pfad/script.php3", array(
"first", "second", "sth" ) );
echo $url;

erzeugt die ausgabe:
http://www.meinserver.de/pfad/script.php3?first=der+erste+wert&second=der+zw
eite+wert&sth=sth+z%81m+%82nc%94d%8An

Gruss
  Domas

PS: Das basteln solcher Work-Arounds macht echt Spass ;)



php::bar PHP Wiki   -   Listenarchive