Avatar billede alexander_j Nybegynder
26. juni 2005 - 13:20 Der er 8 kommentarer og
1 løsning

udskift variabels værdi i URL

Jeg har et lille problem, som det kunne tænkes, at nogen kunne hjælpe mig med at løse!

Jeg har en variabel fx "minhjemmeside.dk?minvar0=123&minvar1=42&minvar2=abc"
I denne variabel ønsker jeg at udskifte værdien for 'minvar1', således at den ikke er '42' men fx '117'!

Jeg har tænkt på noget med en split og join omkring 'minvar1=', men måske det kan gøres nemmere?
Avatar billede intenz Novice
26. juni 2005 - 13:24 #1
Kan du ikke bare sætte værdien til noget andet i selve php koden?

if (isset($_GET[minvar1])) {
$_GET[minvar1] = "117";
}

eller lign.
Avatar billede alexander_j Nybegynder
26. juni 2005 - 13:27 #2
Jeg skal bruge strengen til et link senere hen!
Avatar billede intenz Novice
26. juni 2005 - 13:31 #3
Du kan vel bare lave linket ved:
minhjemmeside.dk?minvar0=<?=$_GET[minvar0]?>&minvar1=<?=$_GET[minvar1]?>&minvar2=<?=$_GET[minvar2]?>
Avatar billede intenz Novice
26. juni 2005 - 13:33 #4
Det er selvfølgelig afhægigt af at linket altid indeholder de samme variabler, ellers får man et link med en masse tomme variabler.

Indeholder dit link altid de samme?
Avatar billede erikjacobsen Ekspert
26. juni 2005 - 14:53 #5
Måske sådan noget i den her retning:

  $link="minhjemmeside.dk?minvar0=123&minvar1=42&minvar2=abc";
  $erstatmed='117';
  print preg_replace('/(minvar1=)([^&]*)/','\01'.$erstatmed,$link);
Avatar billede alexander_j Nybegynder
26. juni 2005 - 19:41 #6
intenz -> antallet af variabler varrierer og er ikke altid kendt - faktisk kan jeg ikke engang være sikker på at den variabel jeg ønsker at give en bestemt værdi findes i strengen - derfor kan jeg ikke bare definere variablerne en for en (dette er fordi jeg prøver at lave mig en universel funktion til et bestemt formål).

erikjacobsen -> Det ser ud til at virke - kan du forklare mig, hvad det er den gør(og komme med et svar)?
Avatar billede erikjacobsen Ekspert
26. juni 2005 - 19:54 #7
Ingen svar fra mig - jeg samler slet ikke på point.

Regulære udtryk er umulige at forklare med få ord. Men den leder efter
minvar1= efterfulgt af hvadsomhelst (dog ikke &), og erstatter så hvadsomhelst med det
du ønsker ;)
Avatar billede erikjacobsen Ekspert
26. juni 2005 - 19:54 #8
Og så bør den faktisk være
  print preg_replace('/([?&]minvar1=)([^&]*)/','\01'.$erstatmed,$link);
Avatar billede alexander_j Nybegynder
26. juni 2005 - 20:50 #9
Ok tak :-D
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