Avatar billede brops Nybegynder
22. november 2004 - 23:17 Der er 3 kommentarer og
1 løsning

backslash før URL

jeg har et stykke PHP kode som skal behandle en tekststreng en bruger har smidt ind i en form.

Koden (tag jer ikke af den bøvlet måde noget af det er lavet :D):

    $besked = $_POST['besked'];
   
    $beskeden = $besked;
    $replArr = array(
        "ø" => "ø",
        "Ø" => "Ø",
        "å" => "å",
        "Å" => "Å",
        "æ" => "æ",
        "Æ" => "Æ",
        "<" => "&lt;",
        ">" => "&gt;",
        "\"" => "&quot;",
        "www." => "http://www.",
        "" => "<b>",
        "
" => "</b>",
        "" => "<i>",
        "
" => "</i>",
        "" => "<u>",
        "
" => "</u>",
    );
    $replaArr = array (
        "http://http://www." => "http://www."
    );
    $beskeden = strtr( $beskeden, $replArr );
    //ændre tilbage til http:// hvis brugeren skriver http://www.
    $beskeden = strtr( $beskeden, $replaArr );
    $beskeden = addslashes( $beskeden );
   
    //når der bliver skrevet HTTP eller WWW retter den det til et link
    $beskeden = preg_replace('/(http(s)?:\\/\\/[^\\s\\n]*)\\b(\\/)?/i','<a target=_blank href=\\\\\\0\>\\\\\\0</a>',$beskeden);

    $beskeden = nl2br( $beskeden );

Problemet ligger i at når jeg smidet noget indput ind, hvori der er en URL får jeg fx følgenden retur fra den:

"jonas \http://fisk.dk"

input: "jonas http://fisk.dk"

det er den backslash som kommer ind, den HTML gennereret kode bliver for linket: <a target=_blank href=\http://fisk.dk\>\http://fisk.dk</a>

nogen der har nogle forslag til hvordan jeg retter den fejl??
Avatar billede brops Nybegynder
22. november 2004 - 23:35 #1
Glemt lige at sige: det er kun når jeg laver en echo på detinden det bliver sat i databasen, hvis ikke det kommer over databasen, er fejlen der ikke
Avatar billede hmortensen Nybegynder
22. november 2004 - 23:36 #2
Måske sådan her:
$beskeden = preg_replace('/(http(s)?:\/\/[^\s\n]*)\b(\/)?/i','<a target="_blank" href="\0">\0</a>',$beskeden);
Avatar billede brops Nybegynder
22. november 2004 - 23:52 #3
tark det virkede smid et svar så er det points :D
Avatar billede hmortensen Nybegynder
22. november 2004 - 23:53 #4
Det var så lidt
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