Avatar billede hav0k Nybegynder
09. november 2003 - 19:24 Der er 2 kommentarer og
1 løsning

Hvorfor virker min function ikke?

Jeg har flg. function til at formatere min tekst i bl.a. tagwall..:

    function format($str, $target, $level)    { 
        $str1 = htmlentities($str);
        $str1 = url($str1, $target);
        $str1 = email($str1);
        if($level == "admin"){
            $trans = array('&lt;i&gt;' => '<i>', '&lt;u&gt;' => '<u>', '&lt;/i&gt;' => '</i>', '&lt;/u&gt;' => '</u>', '&lt;br&gt;' => '<br>');
        }else{
            $trans = array('&lt;i&gt;' => '<i>', '&lt;u&gt;' => '<u>', '&lt;/i&gt;' => '</i>', '&lt;/u&gt;' => '</u>', '&lt;br&gt;' => '<br>');
        }
        $str1 = strtr($str1, $trans);
        $str1 = str_replace("  ", "&nbsp; ", $str1);
        $str1 = str_replace("\t", "&nbsp;&nbsp;&nbsp; ", $str1);
        $str1 = str_replace("\r", "", $str1);
        $str1= str_replace("\n", "<br>", $str1);
        return $str1;
    }

    function url($str, $target) {  //funktion der finder urls i tekst og laver dem til links
        $ins_str = ""; 
        if ($target) $ins_str .= " target=\"".$target."\"";
        $str = 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);
        return reduce($str);
    }


    function email($str) {  //funktion der finder mails i tekst og laver dem til links
        $str = expand($str);
        $str = preg_replace ("/([\s\"])([\w\.\-_]+)@([\w\-_]+)\.([\w\.\-_]+)/i", "\\1<a href=\"mailto:\\2@\\3.\\4\"".$ins_class.">\\2@\\3.\\4</a>", $str);
        return reduce($str);
    }
   
    function expand($str) {  //bruges i url() og email()
        return " ".$str." ";
    }

    function reduce($str) {  //bruges i url() og email()
        return substr($str, 1, -1);
    }



Og så kalder jeg den så senere på den her måde:

    format($data[5], "_blank", "standard");
    echo $data[5];

Hvilket medfører at $data[5] bliver formateret så links bliver vist og der kun kan være visse html koder osv.. Men hvorfor virker det ikke? Det er som om at den slet ikke får fat i funktionen for www.google.com bliver ikke til link og man kan sagtens skrive alle mulige andre html koder
Avatar billede htm Nybegynder
09. november 2003 - 19:27 #1
prøv
echo format($data[5], "_blank", "standard");


Men ellers prøv og kig på ljwebs tagster: http://www.ljweb.dk/usefulscripts/
Avatar billede hav0k Nybegynder
09. november 2003 - 19:32 #2
Tak.. det var faktisk bare det du sagde der skulle til :)
Avatar billede fangel Nybegynder
09. november 2003 - 19:34 #3
du vil have $data[5]; til at blive ændret eller hva?

så skal du kigge å referancer ;)

eller, lave noget $data[5] = format(...);

Morten
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