2010-08-26 5 views
0

Dans mon test.php Je voudrais fournir un lien vers le script de production index.php, en passant les mêmes paramètres GET:PHP: Remplacer 1er caractère dans une chaîne - pour créer un lien vers lui-même

foreach ($_GET as $key => $val) { 
     $get .= "&$key=$val"; 
} 
# this one is wrong - I want to replace just the first "&" 
$get = str_replace("&", "?", $get); 

echo '<p>You are viewing the test version.</p> 

<p><a href="/index.php' . $get . 
'">Return to production version</a></p>'; 

Comment puis-je remplacer juste le 1er caractère dans la chaîne $get? Ou peut-être il y a une meilleure façon de créer un "auto-lien"?

+6

Vous pouvez être intéressé par: '$ _SERVER ['QUERY_STRING']' –

Répondre

1

Vous devriez regarder $_SERVER['QUERY_STRING'], qui contient la chaîne de requête de la demande, à l'exception de la première ? charater.

Ainsi, par exemple, si vous deviez aller à http://example.com/page.php?var1=val1&var2=val2, le contenu de $_SERVER['QUERY_STRING'] serait var1=val1&var2=val2

En outre, pour remplacer le premier caractère de la chaîne, vous pouvez simplement utiliser:

if(strlen($string) > 0) // Unexpected behavior would occur with empty strings 
{ 
    $string[0] = '?'; // This would modify the first character of a string 
} 
+0

Merci à tous pour les réponses –

0
$get = ""; 

foreach ($_GET as $key => $val) { 
    $get .= "&$key=$val"; 
} 
if(strlen($get) > 0) 
    $get[0] = "?"; 
3

Vous pouvez faire tout:

$get = 'index.php?' . $_SERVER['QUERY_STRING']; 
2
$get = preg_replace('/&/', '?', $get, 1); 
Questions connexes