Avatar billede kongfjong Nybegynder
10. maj 2010 - 09:37 Der er 1 løsning

Regex problem

Jeg har et lille problem med et regex i PHP. Jeg bruger følgende regex

([^"=]|^)(((http|ftp|https):\/\/(www\.)*?)[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#]))

til at fange url'er i en ganske alm. tekst. Det ser også ud til at virke når jeg tester det i RegexBuddy, men bare ikke når jeg prøvet at bruge det i PHP.

Jeg bruger det i preg_replace_callback funktionen med en tekst der indeholder følgende link http://www.testside.dk/news.php?open_id=94&show_comments=94

Det sjove er så, at den kun fanger denne del http://www.testside.dk/news.php?open_id=94& altså udelader den den sidste get-var, selvom &-tegnet kommer med....

Er der nogen der lige kan se hvad dælen er do wrong :)

Helt præcist ser koden sådan ud:

$formatted_text = preg_replace_callback('/([^"=]|^)(((http|ftp|https):\/\/(www\.)*?)[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#]))/i', array($this, 'formatInlineLinks'), $formatted_text);
Avatar billede kongfjong Nybegynder
18. august 2010 - 13:50 #1
Lukket
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