Avatar billede domaz.dk Novice
04. februar 2004 - 20:05 Der er 4 kommentarer og
1 løsning

reverse text_format

Jeg har et script der laver alt text om... f.eks. de ord hvor der står http:// og www. foran laver den om til link o.s.v...

Er der ikk nogen der vil "reverse" den så den laver teksten om igen til den oprindelige tekst...

Scriptet...

function text_format($str, $target="_blank", $css_class="", $fixlongword = 0) {
    $str = str_replace("&", "&", $str);
    $str = str_replace("<", "&lt;", $str);
    $str = str_replace(">", "&gt;", $str);
    $str = text_url($str, $target, $css_class);
    $str = text_email($str, $css_class);
    $str = text_fix_endchar($str);
    $str = str_replace("  ", "&nbsp; ", $str);
    $str = str_replace("\t", "&nbsp;&nbsp;&nbsp; ", $str);
    $str = str_replace("\r", "", $str);
    $str = str_replace("\n", "<br>", $str);
       
    if ($fixlongword != 0) $str = text_fix_longword($str, $fixlongword);
   
    $str = addslashes($str);
   
    return $str;
}


function text_url($str, $target, $css_class) {
    $ins_str = "";
    if ($css_class) $ins_str .= " class=\"".$css_class."\"";
    if ($target) $ins_str .= " target=\"".$target."\"";
    $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);
    return text_reduce($str);
}


function text_email($str, $css_class="") {
    $ins_class = "";
    if ($css_class) $ins_class = " class=\"".$css_class."\"";
    $str = tagster_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 text_reduce($str);
}


function text_fix_endchar($str) {
    $str = preg_replace ("/([\'\"\)\]\.\,\?\!]+)\">/i", "\">", $str);
    $str = preg_replace ("/([\'\"\)\]\.\,\?\!]+)\" (target|class)=\"/i", "\" \\2=\"", $str);
    $str = preg_replace ("/([\'\"\)\]\.\,\?\!]+)<\/a>/i", "</a>\\1", $str);
    return $str;
}

function text_fix_longword($str, $maxlen = 10) {
    $sw = 0;
    $in_tag = false;
    $str_size = strlen($str);
    $res = "";

    for ($i=0; $i<$str_size; $i++){
        if ($str[$i] == '<') $in_tag = true;
        else if ($str[$i] == ' ') $sw = 0;

        if (!$in_tag && (($sw++) > $maxlen)) {
            $res .= '&shy;';
            $sw = 0;
        }
           
        if ($str[$i] == '>') $in_tag = false;
        $res .= $str[$i];
    }
       
    return $res;
}

function text_expand($str) {
    return " ".$str." ";
}

function text_reduce($str) {
    return substr($str, 1, -1);
}

der 200 points til den der laver den om.. ved faktisk ikk om det er svært, kan bare ikk lige selv overskue meget af koden....
Avatar billede fangel Nybegynder
04. februar 2004 - 20:08 #1
det nemmerste er at gemme det orig. text i databasen (gætter på det skal i database) og formatere det når det skal vises...

Morten
Avatar billede domaz.dk Novice
04. februar 2004 - 20:13 #2
ja... det var selvfølgelig os en løsning...
Avatar billede fangel Nybegynder
04. februar 2004 - 20:16 #3
for hvis du nu ønsker at ændre noget i formateringen skal du ikke til at løbe hele databasen igenne, for ting der er blevet ændret og så ændre disse... det giver mange fordele at vente med formatering

Morten
Avatar billede Slettet bruger
05. februar 2004 - 03:42 #4
Hvis der ikke er andet html i din tekst end de links, som tagster har lavet, kan du klare det hurtigt og let med

$nytekst=strip_tags($tekst);
Avatar billede domaz.dk Novice
06. februar 2004 - 09:43 #5
Jeg siger tak... eftersom der ikk blev svaret på spørgsmålet giver jeg pointsne til mig selv igen...
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