2010-03-31 5 views
0

je la fonction suivante qui s'est l'URL de la page actuelle:Comment bande une propriété GET de l'URL en utilisant PHP

<?php 

    // get current page url 
    function currentPageUrl() { 

     $pageURL = 'http'; 

     if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} 

     $pageURL .= "://"; 

     if ($_SERVER["SERVER_PORT"] != "80") { 
      $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 
     } 
     else { 
      $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; 
     } 


     echo $pageURL; 

    } 

?> 

qui imprime:

http://localhost/gallery.php?id=23&type=main

Je veux enlever " & type = principal "qui est présent dans l'URL. Donc, avant l'écho pageurl $ ajouter la ligne suivante:

$pageUrl = preg_replace("&type=main", "", $pageURL); 

Mais elle retourne toujours l'URL complète y compris le type = principal. Comment puis-je me débarrasser de cela à partir de l'url?

+0

Voulez-vous supprimer le paramètre 'type' * period * ou uniquement lorsque sa valeur est" main "? –

+0

@ Peter Bailey, je veux supprimer les deux. – James

Répondre

0

Essayez ceci:

$pageUrl = str_replace('&type=main', '', $pageURL); 
+0

Bizarre, toujours le même problème reste. – James

1

Vous pouvez lancer une url dans parse_url. Il retournera un tableau à partir duquel vous pourrez reconstruire comme bon vous semble.

0

avez-vous essayé d'autres variables $ _SERVER?
il y a beaucoup et certains d'entre eux contiennent déjà tout ce dont vous avez besoin sans remplacer

phpinfo(32); 

vous montrera tous

3

Une autre solution pourrait consister à:

  • utilisation parse_url ou $_SERVER['QUERY_STRING'] pour extraire la liste des paramètres sous la forme d'une chaîne
  • utiliser parse_str pour transformer la chaîne de requête en un tableau contenant chaque paramètre et sa valeur - indexée par des noms de paramètres.
  • un peu de magie sur ce tableau:
    • faire ce que vous devez pour filtrer
    • Par exemple, unset($array['type']); pourrait probablement aider ;-)
    • Si nécessaire, ajouter d'autres paramètres à ce tableau
  • Ensuite, utilisez http_build_query pour reconstruire une chaîne de requête.


Un peu plus complexe que les manipulations de cordes, bien sûr - mais beaucoup plus fiable, je dirais ;-)

0

identifiants PHP sont sensibles à la casse. Vous avez probablement voulu l'assigner à la même variable.

$pageURL = preg_replace("&type=main", "", $pageURL); 

Soit ça, ou vous avez besoin de changer le reste de code à utiliser $pageUrl au lieu de $pageURL.

Questions connexes