Avatar billede retep Nybegynder
05. januar 2005 - 14:09 Der er 6 kommentarer og
1 løsning

reg udtryk - fjerne variabel fra adresselinie

Hej hej,

Håber der er en af jer der vil hjælpe mig med et regulært udtryk (eller en algoritme). Jeg skal kunne tage adresselinien og fjerne en variabel helt.

f.eks.
$strUrl = "minfil.php?var1=342fsdf&var2=fdsfdsf&var3=234234234";
så skal jeg f.eks. kalde en funktion:
fjernVariabelFraUrl("var1",$strUrl);

og den skal så fjerne var1=342fsdf& (dvs. til og med efterfølgende & hvis der er et) og returnere:
minfil.php?var2=fdsfdsf&var3=234234234

På forhånd tak :)
Avatar billede coderdk Praktikant
05. januar 2005 - 20:26 #1
function fjernVariabelFraUrl( $var, $url )
    {
        $res = preg_replace( "/(.*[\?&])($var=.*?)(&.*)/", "\\1\\3", $url );
        return str_replace( "&&", "&", str_replace( "?&", "?", $res ) );
    }
Avatar billede retep Nybegynder
05. januar 2005 - 20:54 #2
Den virker desværre ikke hvis det er den sidste variabel i url'en der skal fjernes

$strUrl = "minfil.php?var1=342fsdf&var2=fdsfdsf&var3=234234234";
echo fjernVariabelFraUrl("var3",$strUrl);

Jeg kan desværre ikke selv gennemskue om det er hurtigt rettet i udtrykket, da jeg er en hat til regulære udtryk :/
Avatar billede coderdk Praktikant
05. januar 2005 - 21:25 #3
Prøv lige med:
    function fjernVariabelFraUrl( $var, $url )
    {
        $res = preg_replace( "/(.*[\?&])($var=.*?)(&.*)?/", "\\1\\3", $url );
        return str_replace( "&&", "&", str_replace( "?&", "?", $res ) );
    }
Avatar billede retep Nybegynder
05. januar 2005 - 21:31 #4
Desværre ikke... Den fjerner godt nok var3= men ikke hele indholdet af variablen...
Avatar billede coderdk Praktikant
05. januar 2005 - 22:40 #5
Ok, mindre ændring så, denne burde virke:

    function fjernVariabelFraUrl( $var, $url )
    {
        $res = preg_replace( "/^(.*[\?&])($var=.*?)(|&.*)?$/", "\\1\\3", $url );
        return str_replace( "&&", "&", str_replace( "?&", "?", $res ) );
    }
Avatar billede retep Nybegynder
06. januar 2005 - 00:12 #6
Super fedt! Det virker perfekt!

Tak for hjælpen ;)))))
Avatar billede coderdk Praktikant
06. januar 2005 - 00:14 #7
Så lidt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester