2009-08-25 4 views

Répondre

5

Oui, vous pouvez utiliser

$oldurl = "http://test.com/test?xyz=27373&page=4&test=5" 
$newurl = preg_replace("/page=\d+/", "page=XYZ", $oldurl); 

Ou vous pouvez reconstruire l'URL de $_GET superglobale.

-1

Qu'essayez-vous exactement de faire? La question est un peu floue.

$ XYZ = $ _GET ['xyz']; $ PAGE = $ _GET ['page'];

?

-1

Voulez-vous remplacer chaque valeur par une autre ou remplacer les deux par une?

0
$url = 'http://test.com/test?xyz=27373&page=4&test=5'; 
preg_match('/xyz=([^&]+)/', $url, $newpage); 
$new = preg_replace('/page=([^&]+)/', $newpage[0], $url); 
$new = preg_replace('/xyz=([^&]+)&/', '', $new); 

Cela tournera

http://test.com/test?xyz=27373&page=4&test=5

dans

http://test.com/test?page=27373&test=5

Pardonne-moi si ce n'est pas ce que vous cherchez à faire, mais votre question est pas tout à fait clair.

0

Je suis sûr que vous pourriez faire quelque chose avec une expression régulière. Toutefois, si l'adresse URL que vous avez indiquée est celle que vous utilisez actuellement, vous avez déjà toutes les variables de demande dans $ _Request. Donc, reconstruisez l'URL en remplaçant les valeurs que vous voulez remplacer, puis redirigez-les vers la nouvelle URL.

Sinon, allez trouver un tutoriel regexp.

0

Si ceci est votre propre page (et vous êtes actuellement sur cette page) ces variables apparaîtront dans une variable globale nommée $_GET, et vous pouvez utiliser quelque chose comme array_slice, unset ou array_filter pour éliminer les variables non désirées et régénérer l'URL .

Si vous avez juste cette URL comme une chaîne, alors quels sont exactement les critères pour supprimer l'information? Techniquement, il n'y a pas de différence entre

...?xyz=27373&page=4&test=5 

et

...?test=5&xyz=27373&page=4 

si juste enlever tous, mais le premier paramètre pourrait ne pas être ce que vous voulez.

Si vous voulez tout supprimer sauf le paramètre xyz. Jetez un oeil à parse_url et parse_str

2

Voulez-vous définir la valeur de xyz à la valeur de la page?Je pense que vous pourriez avoir besoin de spécifier un peu plus. Mais c'est facile à modifier si vous ne connaissez pas regex.

$url = 'http://test.com/test?xyz=27373&page=4&test=5'; 
$urlQuery = parseUrl($url, PHP_URL_QUERY); 
parse_str($urlQuery, $queryData); 
$queryData['page'] = $queryData['xyz']; 
unset($queryData['xyz']); 
$query = http_build_query($queryData); 
$outUrl = substr_replace($url, $query, strpos($url, '?')); 
Questions connexes