Avatar billede supermand69 Nybegynder
30. september 2006 - 19:20 Der er 17 kommentarer og
1 løsning

preg_match server_name

jeg skal have trukket server_name ud af en string

preg_match('/:\/\/(.+)\//i', $_SERVER["HTTP_REFERER"], $referer);

jeg synes ikke helt den her virker
Avatar billede erikjacobsen Ekspert
30. september 2006 - 19:30 #1
prøv
  preg_match('/:\/\/(.+?)\//i', $_SERVER["HTTP_REFERER"], $referer);
Avatar billede supermand69 Nybegynder
30. september 2006 - 19:43 #2
det virker :)

kan bare ikke forstå hvad det ? skulle gøre godt for lige der?
Avatar billede coderdk Praktikant
30. september 2006 - 20:12 #3
Det ? gør at den bliver un-greedy, du ville opnå det samme ved at tilføje U-switchen:

preg_match('/:\/\/(.+)\//iU', $_SERVER["HTTP_REFERER"], $referer);
Avatar billede coderdk Praktikant
30. september 2006 - 20:14 #4
I.e.

$text = "hej test hej test";

/hej.+test/ vil finde "hej test hej test"
/hej.+?test/ vil finde "hej test" (begyndelsen)
Avatar billede supermand69 Nybegynder
30. september 2006 - 20:43 #5
jamen i mit eksempel er der jo :// og det er der kun en gang?
Avatar billede erikjacobsen Ekspert
30. september 2006 - 20:52 #6
Det efterfølgende / er der flere gange. Derfor.
Avatar billede supermand69 Nybegynder
30. september 2006 - 23:14 #7
coder > lav et svar :)
Avatar billede coderdk Praktikant
01. oktober 2006 - 21:15 #8
Ok, men kun fordi jeg ved at erik ikke samler på point :)
Avatar billede supermand69 Nybegynder
06. oktober 2006 - 16:30 #9
coder > det ved jeg :)

men har lige en tilføjelse

hvordan kan man også fjerne www. hvis det forekommer i servernavnet?
Avatar billede coderdk Praktikant
06. oktober 2006 - 19:02 #10
preg_match('/:\/\/(www\.)?(.+)\//iU', $_SERVER["HTTP_REFERER"], $referer);

så er det $referer[2]
Avatar billede supermand69 Nybegynder
06. oktober 2006 - 19:15 #11
tak både erik og coder :)
Avatar billede supermand69 Nybegynder
06. oktober 2006 - 19:23 #12
men lige en ting.. / skal være med i URL før den matcher

eks. http://www.noget.dk => ''
Avatar billede supermand69 Nybegynder
06. oktober 2006 - 19:26 #13
- og www. bliver heller ikke fjernet hvis det er med i strengen
Avatar billede coderdk Praktikant
06. oktober 2006 - 19:26 #14
preg_match('/:\/\/(www\.)?(.+)\/?/iU', $_SERVER["HTTP_REFERER"], $referer);

tror jeg :)
Avatar billede supermand69 Nybegynder
06. oktober 2006 - 19:34 #15
$tst_arr = array('http://www.elb.dk',
    'http://www.elb.dk/v2/',
    'http://www.elb.dk/v2/tst',
    'http;//www.elb.dk/v2/tst/side.php',
    'http://temp.elb.dk',
    'http://temp.elb.dk/v2/',
    'http://temp.elb.dk/v2/tst',
    'http;//temp.elb.dk/v2/tst/side.php'
    );

foreach($tst_arr as $value)
{
    preg_match('/:\/\/(www\.)?(.+)\//iU', $value, $referer);
   
    echo $value.' => '.$referer[2].'<br>';
}
Avatar billede supermand69 Nybegynder
06. oktober 2006 - 19:35 #16
den virker heller ikke.. har dog lige selv et par fejl (;)

men de eksempler jeg nævner skulle gerne virke :)
Avatar billede coderdk Praktikant
06. oktober 2006 - 21:50 #17
Prøv:

$tst_arr = array('http://www.elb.dk',
    'http://www.elb.dk/v2/',
    'http://www.elb.dk/v2/tst',
    'http://www.elb.dk/v2/tst/side.php',
    'http://temp.elb.dk',
    'http://temp.elb.dk/v2/',
    'http://temp.elb.dk/v2/tst',
    'http://temp.elb.dk/v2/tst/side.php'
    );

foreach($tst_arr as $value)
{
    preg_match('/:\/\/(www\.)?([^\/ ]+)/i', $value, $referer);
 
    echo $value.' => '.$referer[2].'<br>';
}
Avatar billede supermand69 Nybegynder
06. oktober 2006 - 21:59 #18
det virker.. takker :)
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