Avatar billede eikhorsholm Nybegynder
21. maj 2005 - 13:21 Der er 27 kommentarer og
1 løsning

Hiv page=X ud af URL uden $_GET.

Er det muligt, på en ordentlig måde, at have en function som virker nogenlunde som i nedenstående eksempel:

$str = "velkommmen.php?page=hej";

echo showPage($str); (resulterer i hej).
Avatar billede plazm Nybegynder
21. maj 2005 - 13:30 #1
hvorfor ikke bruge $_GET[] når det er hvad den er lavet til?
Avatar billede eikhorsholm Nybegynder
21. maj 2005 - 13:32 #2
For mine inputs til funktionen findes ikke i adresse-feltet i browseren.
Skal køre den på flere forskellige adresser på min side.
Avatar billede nielle Nybegynder
21. maj 2005 - 13:42 #3
$str = "velkommmen.php?page=hej";

$EnMatch = preg_match("/page=(.*)/", $str, $matches);
if ($EnMatch)
    echo "Page= " . $matches['1'];
else
    echo "Ingen match.":
Avatar billede olebole Juniormester
21. maj 2005 - 13:42 #4
<ole>

Du kan poste en form mod siden - eller bruge en cookie - eller session. Det kommer anpå til hvad og hvordan det skal bruges

/mvh
</bole>
Avatar billede nielle Nybegynder
21. maj 2005 - 13:43 #5
Det regulære udtryk - "/page=(.*)/ - skal forfines noget mere hvis der f.eks. kan stå noget mere efter "page=hej".
Avatar billede olebole Juniormester
21. maj 2005 - 13:45 #6
nielle >> Det kan der ikke ... der kan ikke engang stå "page=hej": "For mine inputs til funktionen findes ikke i adresse-feltet i browseren."  :)
Avatar billede eikhorsholm Nybegynder
21. maj 2005 - 13:45 #7
Jeg har en menu med en masse menuer, som bliver genereret fra en array.
Dette array løbes igennem, og så skal jeg sammenligne om $_GET['page'] passer sammen med page=... fra f.eks. velkommen.php?page=hej, dintur.php?page=side1 osv...
Avatar billede eikhorsholm Nybegynder
21. maj 2005 - 13:47 #8
Den adresse jeg sammenligner med kan godt indeholde flere variable. Derfor jeg ikke bare kan sammenligne med $_SERVER['PHP_SELF']
Avatar billede olebole Juniormester
21. maj 2005 - 13:47 #9
Nu er forvirringen vist ved at være total ...! Står der alligevel noget i adressefeltet?  :)
Avatar billede eikhorsholm Nybegynder
21. maj 2005 - 13:50 #10
Jeg har en masse adresser på min side, som jeg vil sammenligne om indeholder samme value i værdien page=...
Avatar billede olebole Juniormester
21. maj 2005 - 13:50 #11
Ahhhhh .... nu tror jeg, jeg forstår  ;o)

eikhorsholm >> Du har formodentlig kun én variabel, der hedder 'page' i hvert link. Så kan du godt sammenligne med PHP-SELF
Avatar billede eikhorsholm Nybegynder
21. maj 2005 - 13:50 #12
Jeg kan nemt hive page ud fra adressefeltet med $_GET['page'], men hvorledes hiver jeg dem ud fra adresserne på min side?
Avatar billede olebole Juniormester
21. maj 2005 - 13:51 #13
Det gør du med den RegExp, nielle viste dig  :)
Avatar billede eikhorsholm Nybegynder
21. maj 2005 - 13:52 #14
olebole --> Hvad nu hvis jeg sammenligner:

velkommen.php?page=hej&id=4 == side2.php?page=hej

den vil vel resultere i falsk, men den skal bruge sand?
Avatar billede eikhorsholm Nybegynder
21. maj 2005 - 13:53 #15
Eller for ikke at kunne bruge RegExp:

page.php?page=hej == velkommen.php?page=hej&id=7
Avatar billede olebole Juniormester
21. maj 2005 - 13:53 #16
21/05-2005 13:43:42  ;o)
Det kommer anpå, hvad der kan stå
Avatar billede nielle Nybegynder
21. maj 2005 - 14:12 #17
<?php
function showPage($url)
{
if (preg_match("/page=(.+?)(&.+)?$/", $url, $matches))
    return $matches['1'];
else
    return "":
}
?>
Avatar billede eikhorsholm Nybegynder
21. maj 2005 - 16:14 #18
nielle --> den er da ikke særlig generel?
Avatar billede nielle Nybegynder
21. maj 2005 - 16:25 #19
Den fungere da med de eksempler du har givet os ind til nu. Så må du vise nogen af dem hvor den ikke fungerer.
Avatar billede olebole Juniormester
21. maj 2005 - 20:11 #20
eikhorsholm >> Man kan ikke skrive en brugbar - og slet ikke en 'generel' eller 'generisk' - RegExp, uden at vide, hvad der kan stå. Ellers er det umuligt at opstille mønstret, der skal bruges. Det var derfor, jeg skrev: "Det kommer anpå, hvad der kan stå".
Hvis du vil have en bedre, må du selv oplyse om de forskellige muligheder, der kan opstå  :)
Avatar billede eikhorsholm Nybegynder
22. maj 2005 - 16:50 #21
Hmm. Ok. Håbede der var en slags funktion for at imitere $_GET på en eller anden måde.

Kan godt se, jeg lige må tænke mit problem lidt mere igennem :-)

Tror jeg lukker spørgsmålet. Håber det er i orden jeg selv snupper pointene, ellers må I lige sige til?

Ellers tak for alle svar!
Avatar billede nielle Nybegynder
25. maj 2005 - 19:08 #22
Nå?! Hvad er det egentlig du mener der var i vejen med min løsning siden at du ikke kan bruge den?
Avatar billede eikhorsholm Nybegynder
28. maj 2005 - 00:27 #23
nielle -> din løsning baserede sig på at man viste hvor page=... befandt sig i stien. Jeg ønskede en generel løsning.
Avatar billede nielle Nybegynder
28. maj 2005 - 06:45 #24
Nu gik dit spørgsmål rent faktisk på "page", så det er det vi har arbejdet ud fra. Du har stadig ikke givet også nogle eksempler på hvad du mener med at den skal være "generel". Hvad er det som den også skal kunne gøre??
Avatar billede eikhorsholm Nybegynder
02. juni 2005 - 20:57 #25
Kan du komme med en funktion som i begge nedenstående felter vil returnere "HEJ"?

velkommen.php?page=HEJ&id=4

page.php?page=HEJ&id=4
Avatar billede eikhorsholm Nybegynder
02. juni 2005 - 21:00 #26
Ved du hvad nielle!
Jeg ved ikke rigtig hvordan jeg skal sige det, men du har faktisk 100% ret!

Jeg har vist sagt lidt for meget tidligere ,UNDSKYLD. Dit forslag virker!

Jeg laver lige et spørgsmål så du kan få pointene. Det er altså rigtig pinligt, sorry!
Avatar billede eikhorsholm Nybegynder
02. juni 2005 - 21:02 #27
nielle, hvis du laver et svar her:
http://www.eksperten.dk/spm/622876
så får du pointene.

Jeg undskylder igen!
Avatar billede nielle Nybegynder
02. juni 2005 - 21:44 #28
Fair nok - jeg bærer skam ikke nag :^)
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