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