Avatar billede jd Nybegynder
02. december 2000 - 20:47 Der er 17 kommentarer og
1 løsning

omskriv en reg. exp.

Hey,

Jeg skal have skrevet denne reg. exp. om::

function linkit($tekst){
    $tekst = eregi_replace(\"((f|ht){1}tp://[a-z0-9@:%_.~#-\\?&]+)\", \"<a href=\\\"\\\\1\\\" target=\\\"\\\\_blank\\\">\\\\1</a>\", $tekst);
    return eregi_replace(\"([a-z0-9._-]+@[a-z0-9._-]+\\.[a-z0-9._-]+)\",\"<a href=\\\"mailto:\\\\1\\\">\\\\1</a>\",$tekst);
}

Det den gør, er at lave http:// om til <a href=\"http://...

Jeg har bare det problem at hvis jeg kører dette gennem funktionen:

http://delfs.dk<br>

vil det blive til <a href=\"http://delfs.dk<br>\">http://delfs.dk<br></a>

Og det link findes jo mærkeligt nok ikke, så det der skal gøres, er at checke efter < i http://-adresser, og når det støder på sådan en, skal det stoppe.

Altså, sårn at http://delfs.dk<br> vil blive til <a href=\"http://delfs.dk\">http://delfs.dk</a><br>

/Jon@z
Avatar billede jd Nybegynder
02. december 2000 - 20:48 #1
...forresten, så er funktionen skrevet af Christian Jørgensen (Razor)
Avatar billede pyromaniac Nybegynder
02. december 2000 - 21:02 #2
Ja det er jo lige det

he he
Avatar billede lojmann Nybegynder
02. december 2000 - 21:22 #3
if ($url == \'http://delfs.dk<br>\')
{
$url = http://delfs.dk
}
else
{
echo \"Seems to be okay!\";
}

*LÅL*
Avatar billede jd Nybegynder
02. december 2000 - 21:27 #4
lojmann-> ...og så er syntaxen enda ukorrekt! *LåååL*
Ej, men jeg vil gerne holde dette spm. fri for lalle-indlæg, da jeg gerne vil have nogle seriøse svar!
Avatar billede erikjacobsen Ekspert
02. december 2000 - 21:55 #5
Jeg tror bare du skal ændre stumpen
[a-z0-9@:%_.~#-\\?&]
til
[a-z0-9@:%_\\.~#-\\?&]
for et punktum betyder jo et vilkårligt tegn, og det ser ud til at skulle
betyde et punktum. Men det er ikke prøvet...
Avatar billede bo.morville Nybegynder
02. december 2000 - 21:56 #6
Prøv med denne:
$tekst = eregi_replace(\"((f|ht){1}tp://[^ )\\r\\n<]+)\",\"<A href=\\\"\\\\1\\\" target=\\\"_blank\\\">\\\\1</A>\",$tekst);

Avatar billede razor Nybegynder
02. december 2000 - 21:59 #7
erik> et punktum i en class bliver da neutraliseret ?
Avatar billede razor Nybegynder
02. december 2000 - 22:00 #8
bo> må der gerne være ¤,£ osv. i en url.. ? :o)
Avatar billede jd Nybegynder
02. december 2000 - 22:02 #9
erik-> sorry, det er ikke det!
Avatar billede erikjacobsen Ekspert
02. december 2000 - 22:07 #10
Jah, razor, det gør det jo faktisk. Men jeg gik ud fra du vidste
hvad du gjorde, og ? bliver også neutraliseret, og der havde du
en overflødig \\ foran!    (Reddet??  ;-) )

Korrekt jd, vi arbejder videre!
Avatar billede erikjacobsen Ekspert
02. december 2000 - 22:18 #11
Nu kan vi så spørge forfatteren til linierne om han mener at i
[a-z0-9@:%_.~#-\\?&]
vil han have alle tegn fra # til \\ med? Der er vist < og > imellem.
Eller om han mener tegnet #, tegnet - og tegnet ?. I sidste tilfælde
skal man blot skrive
[a-z0-9@:%_.~#\\-\\?&]

Men får vi alle spændende tegn med?
Avatar billede razor Nybegynder
02. december 2000 - 22:21 #12
hov.. jeg mener da kun at der er et par lovlige ranges, altså a-z og 0-9 (deri selvfølgelig også g-o og 4-7) - og ikke alle de special tegn..

finder lige min regexp bog frem og læse lidt på lektierne..
Avatar billede bo.morville Nybegynder
02. december 2000 - 22:24 #13
Jeg må vist hellere give op her. Mit kendskab er ikke helt tilstrækkeligt... Men man kan jo blive klogere af at følge med her!
Avatar billede razor Nybegynder
02. december 2000 - 22:26 #14
function linkit($tekst){
    $tekst = eregi_replace(\"((f|ht){1}tp://[a-z0-9@:%_.~#\\-\\?&]+)\", \"<a href=\\\"\\\\1\\\" target=\\\"\\\\_blank\\\">\\\\1</a>\", $tekst);
    return eregi_replace(\"([a-z0-9._-]+@[a-z0-9._-]+\\.[a-z0-9._-]+)\",\"<a href=\\\"mailto:\\\\1\\\">\\\\1</a>\",$tekst);
}

æv! - du havde ret!
Avatar billede razor Nybegynder
02. december 2000 - 22:26 #15
jeg får dig næste gang :o)
Avatar billede jd Nybegynder
02. december 2000 - 23:06 #16
takker...

oO(100 points for et \\ godt klaret erik :)
Avatar billede erikjacobsen Ekspert
02. december 2000 - 23:09 #17
hehe - næste gang bliver mit svar *kun* et  \\  og så må du selv anbringe det!
Avatar billede jd Nybegynder
02. december 2000 - 23:46 #18
hehe... oki
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