Mailinglisten-Archive |
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