Avatar billede snuseren.dk Nybegynder
15. marts 2003 - 14:56 Der er 4 kommentarer og
1 løsning

Hvorfor virker det ik?

Hej, jeg har lige her for 10 min. siden fået sådan et script, der farver alt tekst rødt, imellem <?php og ?> i et forum. Det virker osse jeg kan bare ikke få det til at virke, når der samtidig er en funktion til at highlighte URLs. Her er koden:

<?php
function tagster_url($str, $target, $css_class) {
    $ins_str = "";
    if ($css_class) $ins_str .= " class=\"".$css_class."\"";
    if ($target) $ins_str .= " target=\"".$target."\"";

# Preg Replace til at omdanne text til URLs

    $str = tagster_expand($str);
    $str = preg_replace ("/(ftp|http|https|telnet|news|nntp|file|irc):\/\/([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "<a href=\"\\1://\\2\"".$ins_str.">\\1://\\2</a>", $str);
    $str = preg_replace ("/(\s|tp\:|\(|\[|\&gt;)(www\.)([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "\\1<a href=\"http://\\2\\3\"".$ins_str.">\\2\\3</a>", $str);
    $str = preg_replace ("/(\s|tp\:|\(|\[|\&gt;)(ftp\.)([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "\\1<a href=\"ftp://\\2\\3\"".$ins_str.">\\2\\3</a>", $str);
    $str = preg_replace ("/([\s\"])([\w\.\-_]+)@([\w\-_]+)\.([\w\.\-_]+)/i", "\\1<a href=\"mailto:\\2@\\3.\\4\"".$ins_class.">\\2@\\3.\\4</a>", $str);


# Array med smileys

    $smilearray = array(":-)", ":)", ";-)", ";)");

# Array med billederne til smileys

    $smilebil = array(
    "<img src=\"Forside/Billeder/LogoSnuseren.gif\">",
    "<img src=\"Forside/Billeder/LogoSnuseren.gif\">",
    "<img src=\"Forside/Billeder/LogoSnuseren.gif\">",
    "<img src=\"Forside/Billeder/LogoSnuseren.gif\">"
    );

# Str Replace til smileys :-)

    $str = str_replace($smilearray, $smilebil, $str);

# Farver hvis det er programmering
    $str = str_replace("<","&lt", $str);
    $str = str_replace(">","&gt", $str);
    $str = str_replace("&lt?php","<font color=\"red\">&lt?php", $str);
    $str = str_replace("?&gt","?&gt</font>", $str);


# Til str

    return tagster_reduce($str);
  }


function tagster_expand($str) {
    return " ".$str." ";
  }
function tagster_reduce($str) {
    return substr($str, 1, -1);
  }

# Selve tekststrengen

    $tekst = "<?php echo "hej" ?>";
    echo tagster_url($tekst,"_blank","myclass");


?>


Hvad kan der være galt ??


MVH
Anders
Avatar billede schaefner Juniormester
15. marts 2003 - 15:01 #1
Det burde umiddelbart være nok, at flytte:
$str = str_replace("<","&lt", $str);
$str = str_replace(">","&gt", $str);

op i toppen af dokumentet.
Avatar billede snuseren.dk Nybegynder
15. marts 2003 - 15:03 #2
får stadig samme fejl, og linie 58 er den linje hvor alt teksten  står i + det php der skal farves rødt...


Parse error: parse error, unexpected T_STRING in d:\programmer\apache group\apache\htdocs\2.php on line 59
Avatar billede snuseren.dk Nybegynder
15. marts 2003 - 15:04 #3
ups linje 59 mente jeg...
Avatar billede schaefner Juniormester
15. marts 2003 - 15:06 #4
Prøv:
$tekst = '<?php echo "hej" ?>';
Avatar billede snuseren.dk Nybegynder
15. marts 2003 - 15:09 #5
det er altså utroligt hvad du kan :-)
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