Avatar billede nerdyguy Nybegynder
25. december 2000 - 03:07 Der er 8 kommentarer og
1 løsning

eregi_replace() !!

Davser
Jeg prøver at få min funktion til at HIGHLIGHTE url\'s i en streng:

Function validateURLz ( $result ) {
  $result = eregi_replace(\"(http://|ftp://)(([a-z0-9\\.\\-])*(([a-z0-9\\.])*)?)([@:])?(([a-z0-9\\./])*)?(([@a-z0-9\\./])*)?(([\\?a-z0-9\\.\\=/])*)?(([\\&a-z0-9\\.\\=/])*)?\", \"<a href=\\\"\\\\0\\\" onfocus=\\\"blur()\\\" target=\\\"_blank\\\">\\\\0</a>\",$result);
  return $result;
}

Det ser satME rodet ud, men den virker...
Der er bare et lille problem!
Altså (den parser det hele):

ftp://bruger@213.237.14.108/<br>
ftp://bruger:kode@213.237.14.108/<br>
www.minhost.dk" target="_blank">ftp://bruger@www.minhost.dk <br>
www.minhost.dk" target="_blank">ftp://bruger:kodeord@www.minhost.dk <br>
http://www.minhost.dk/minside.php?id=1 <br>
http://www.minhost.dk/minside.php? - ? skal ikke parses<br>
http://www.minhost.dk/minside.php?id= - ?id= skal ikke parses<br>
http://www.minhost.dk/minside.php?id <br>
http://www.minhost.dk/minside.php?id=1&bruger=mig/<br>
http://www.undertakers.dk/?side=tagwall.php <br>
http://www.u-n.d.er-tak.er-s.dk/ <br>
ftp://120.100.12.1

Men det med ? og ?id= skal jo ikke parses, hvis ikke der står noget efterfølgene!!
Meen hvordan gør man så det?
Avatar billede nerdyguy Nybegynder
25. december 2000 - 03:14 #1
Damn det ser rodet ud her... Nå, i kan se det her:
http://www.newbieinfo.f2s.com/test.php
Og ehem.. den sjove version her:
http://www.newbieinfo.f2s.com/test.phps
*SS*
Avatar billede andreas Nybegynder
25. december 2000 - 12:51 #2
Ikke testet, men måske virker det... og JA, der er ændret lidt...

Function validateURLz ( $result ) {
  $result = eregi_replace(\"(http://|ftp://)(([a-z0-9\\.\\-])*(([a-z0-9\\.])*)?)([@:])?(([a-z0-9\\./])*)?(([@a-z0-9\\./])*)?(([\\?a-z0-9\\.\\=/])*)?(([\\&a-z0-9\\.\\=/])*)?^\\?\", \"<a href=\\\"\\\\0\\\" onfocus=\\\"blur()\\\" target=\\\"_blank\\\">\\\\0</a>\",$result);
  return $result;
Avatar billede andreas Nybegynder
25. december 2000 - 12:51 #3
Ikke testet, men måske virker det... og JA, der er ændret lidt...

Function validateURLz ( $result ) {
  $result = eregi_replace(\"(http://|ftp://)(([a-z0-9\\.\\-])*(([a-z0-9\\.])*)?)([@:])?(([a-z0-9\\./])*)?(([@a-z0-9\\./])*)?(([\\?a-z0-9\\.\\=/])*)?(([\\&a-z0-9\\.\\=/])*)?^\\?\", \"<a href=\\\"\\\\0\\\" onfocus=\\\"blur()\\\" target=\\\"_blank\\\">\\\\0</a>\",$result);
  return $result;
Avatar billede nerdyguy Nybegynder
25. december 2000 - 14:18 #4
Jeg kan godt se din ændring Andreas, jeg prøver det lige :)
Avatar billede nerdyguy Nybegynder
25. december 2000 - 14:25 #5
Den parser keine med din sætning Andreas :(
Avatar billede nerdyguy Nybegynder
25. december 2000 - 14:55 #6
!Erikjacobsen! - Hjælp mig lidt :)
Kan man ikke gøre sådan at \'HVIS\' der er et ? så SKAL der stå noget bagefter.
Og HVIS der er et = tegn derefter så SKAL der stå noget bagefter !!????
Avatar billede nerdyguy Nybegynder
25. december 2000 - 15:59 #7
Okay, jeg fandt ud af lidt mere:
Function validateURLz2 ( $result ) {
  $result = eregi_replace(\"http://([a-z0-9\\.\\-])*(([a-z0-9\\./])*)?(\\?([a-z0-9]+))?(\\=([\\.a-z0-9]+))?((\\&([a-z0-9]+))(\\=([\\.a-z0-9]+))?)*\", \"<a href=\\\"\\\\0\\\" onfocus=\\\"blur()\\\" target=\\\"_blank\\\">\\\\0</a>\",$result);
  return $result;
}
Den parser KUN http:// og den gør som jeg vil...
Nu mangler jeg bare så den tager \'www\' med og laver dem til
<a href=\"http://www..../\">www..../</a>
Avatar billede nerdyguy Nybegynder
25. december 2000 - 22:43 #8
Øv altså!
Ingen som har en URL validator/highloghter ?????
Avatar billede erikjacobsen Ekspert
26. december 2000 - 18:55 #9
;-)  Var der nogen, der kaldte ??  Åh, det er et af de sædvanlige \"svære\"
problemer. Havde jeg den fuldstændige løsning, er jeg ikke sikkker på den
kunne købes for point ... men det har jeg nu ikke :(
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

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