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(
"ø" => "ø",
"Ø" => "Ø",
"å" => "å",
"Å" => "Å",
"æ" => "æ",
"Æ" => "Æ",
"<" => "<",
">" => ">",
"\"" => """,
"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??
