kostenloser Webspace werbefrei: lima-city


Funktion ist sehr langsam

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    d**********r

    Hallo,

    hier ist meine Klasse:

    <?
    class CODE {

    function highlight_php_string($string) {
    $php_1 = explode("[php]", $string);
    $final = $php_1[0];

    for($i = 1; $i <= count($php_1) - 1; $i++) {
    $php_2 = explode("[/php]", $php_1[$i]);

    ob_start();
    highlight_string(html_entity_decode(trim($php_2[0])));
    $php_2[0] = ob_get_contents();
    ob_end_clean();

    $final .= '<font face="verdana" size="1">PHP:</font><br><table width="100%" border="0" cellpadding="2" cellspacing="0" class="warn_table"><tr><td>'.$php_2[0].'</td></tr></table>'.$php_2[1];
    }

    return $final;
    }

    function code2html($text) {

    //Sonderzeichen in Entities umwandeln
    if (HTML_DO == 0) {
    $text = htmlentities($text);
    }

    $text = $this->highlight_php_string($text);

    $text = nl2br($text);
    //SMILIES
    if (SMILIES_DO == 1) {
    $text = str_replace(":respekt:", "<img src=\"./image/aufbau/board/smilies/lachend/smile051.gif\">", $text);
    $text = str_replace(":zwinker:", "<img src=\"./image/aufbau/board/smilies/zwinkernd/003.gif\">", $text);
    $text = str_replace(":wink:", "<img src=\"./image/aufbau/board/smilies/sonstige/021.gif\">", $text);
    $text = str_replace(":christmas:", "<img src=\"./image/aufbau/board/smilies/weihnachten/002.gif\">", $text);
    $text = str_replace(":cat:", "<img src=\"./image/aufbau/board/smilies/tiere/tier014.gif\">", $text);
    $text = str_replace(":kopfab:", "<img src=\"./image/aufbau/board/smilies/brutal/brutal018.gif\">", $text);
    $text = str_replace(":bart:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/sonstige/055.gif\">", $text);
    $text = str_replace(":silly:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/verrueckt/010.gif\">", $text);
    $text = str_replace(":brille:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/brille/brille014.gif\">", $text);

    $text = str_replace(":waffe:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/brutal/brutal008.gif\">", $text);
    $text = str_replace(":engel:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/engel/engel006.gif\">", $text);
    $text = str_replace(":shocked:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/erschreckt/erschreckt001.gif\">", $text);
    $text = str_replace(":finger:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/finger/finger005.gif\">", $text);
    $text = str_replace(":haha:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/lachend/smile047.gif\">", $text);
    $text = str_replace(":usa:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/laender/land001.gif\">", $text);
    $text = str_replace(":love:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/liebe/liebe002.gif\">", $text);
    $text = str_replace(":mexico:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/mithut/hut029.gif\">", $text);
    $text = str_replace(":schnarch:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/muede/muede005.gif\">", $text);

    $text = str_replace(":musik:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/musik/musik003.gif\">", $text);
    $text = str_replace(":smoke:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/rauchend/rauch003.gif\">", $text);
    $text = str_replace(":sauer:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/sauer/sauer014.gif\">", $text);
    $text = str_replace(":pc:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/sonstige/048.gif\">", $text);
    $text = str_replace(":party:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/sonstige/081.gif\">", $text);
    $text = str_replace(":hund:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/tiere/tier005.gif\">", $text);
    $text = str_replace(":unsicher:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/unsicher/014.gif\">", $text);
    $text = str_replace(":verrueckt:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/verrueckt/006.gif\">", $text);

    $text = str_replace(":lach:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/lachend/smile003.gif\">", $text);
    $text = str_replace(":help:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/unsicher/014.gif\">", $text);
    $text = str_replace(":king:", "<img src=\"http://".$_SERVER['HTTP_HOST']."/image/aufbau/board/smilies/mithut/hut018.gif\">", $text);
    }
    //Codes HTML
    $text = str_replace("[br]", "<br>", $text);
    $text = preg_replace("|\[gallery\](.*)\[/gallery]|", "<a href=\"#\" onclick=\"window.open('http://".$_SERVER['SERVER_NAME']."/galerie.php?id=$1','','height=600, width=500')\">zur Gallery</a>", $text);
    $text = preg_replace("|\[newsimage=(.*);(.*);(.*);(.*)\]\[/newsimage\]|Uism", "<br><img src=\"$1\" width=\"$2\" hight=\"$3\" alt=\"$4\"><br>", $text); // IMAGES
    $text = preg_replace("|\[newsimage=(.*);(.*);(.*);(.*)\](.*)\[/newsimage\]|Uism", '<table width="150" border="0" align="left" cellpadding="0" cellspacing="0" bordercolor="#CCCCCC">
    <tr>
    <td><img src="$1" width="$3" hight="$2" alt="$4"></td>
    </tr>
    <tr>
    <td bgcolor="#000066" class="warn_2">$5</td>
    </tr>
    </table>
    ', $text); // IMAGES


    if (BBCODE_DO == 1) {
    $text = preg_replace("|\[b\](.*)\[/b\]|Uism", "<b>$1</b>", $text); // FETT
    $text = preg_replace("|\[i\](.*)\[/i\]|Uism", "<i>$1</i>", $text); // KURSIV
    $text = preg_replace("|\[u\](.*)\[/u\]|Uism", "<u>$1</u>", $text); // Unterstrichen
    $text = preg_replace("|\[kapit\](.*)\[/kapit\]|Uism", "<span class=\"kapit\">$1</span>", $text); // Kapit
    $text = preg_replace("|\[size=(.*)\](.*)\[/size\]|Uism", "<font size=\"$1\" class=\"text_2\">$2</font>", $text); // Size
    $text = preg_replace("|\[color=(.*)\](.*)\[/color\]|Uism", "<font color=$1 class=text_2>$2</font>", $text); // Color

    $text = preg_replace("|\[left\](.*)\[/left\]|Uism", "<div align=\"left\">$1</div>", $text); // Links
    $text = preg_replace("|\[center\](.*)\[/center\]|Uism", "<div align=\"center\">$1</div>", $text); // Mitte
    $text = preg_replace("|\[right\](.*)\[/right\]|Uism", "<div align=\"right\">$1</div>", $text); // Rechts

    $text = preg_replace("|\[URL=(.*)\](.*)\[/URL\]|Uism", "<a href=http://$1 target=\"blank\">$2</a>", $text); // URL=
    $text = preg_replace("|\[URL\](.*)\[/URL\]|Uism", "<a href=http://$1 target=\"blank\">$1</a>", $text); // URL
    $text = preg_replace("|\[MAIL=(.*)\](.*)\[/MAIL\]|Uism", "<a href=mailto:$1>$2</a>", $text); // Mail=
    $text = preg_replace("|\[MAIL\](.*)\[/MAIL\]|Uism", "<a href=mailto:$1>$1</a>", $text); // Mail

    $text = preg_replace("|\[IMG\](.*)\[/IMG\]|Uism", "<img src=$1>", $text); // Bild
    $text = preg_replace("|\[list\](.*)\[/list\]|Uism", "<ul><li>$1</li></ul>", $text); // Bild

    $text = preg_replace("|\[quote=(.*)\](.*)\[/quote\]|Uism", "<table width=\"500\" border=\"0\" cellspacing=\"0\" cellpadding=\"2\"><tr><td width=\"50\"></td><td class=\"warn_table\"><span class=\"text_klein_s\">Zitat von $1:</span><br><span class=\"warn_1\">$2</span></td></tr></table>", $text); // QUOTE=
    $text = preg_replace("|\[quote\](.*)\[/quote\]|Uism", "<table width=\"500\" border=\"0\" cellspacing=\"0\" cellpadding=\"2\"><tr><td width=\"50\"></td><td class=\"warn_table\"><span class=\"warn_1\">$1</span></td></tr></table>", $text); // QUOTE

    $text = preg_replace("|\[code\](.*)\[/code\]|Uism", "<table width=\"500\" border=\"0\" cellspacing=\"0\" cellpadding=\"2\" class=\"warn_table\"><tr><td><code>$2</code></td></tr></table>", $text); // Code
    }

    return $text;
    }
    }
    ?>


    Das Problem dieser Klasse/Funktion ist das sie die Hauptseite stark ausbremst (Aufbauzeit: 5.5 Sek.) Diese Klasse soll BB-Codes, etc. "?bersetzen". Sie ist zwar noch lange nicht ausgereift. Trotzdem w?rde mich interessieren, weshalb die Klasse so langsam ist. Ich habe es auch mal ohen Klasse, nur mit Funktion versucht; das Ergebnis ist dasselbe.

    mfg
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. mh
    vllt liegts daran, dass du sooooft ;) preg_replace aufrufst
    wenn du einen langen text hast dauert das dann seine zeit...
    und prob ma ob $_SERVER['HTTP_HOST'] nich immer einsetzt
    ich weiss aber nich ob das als normale variable z?hlt oder immer aufgerufen wird
    und ?berpr?f mal die for schleife
    und pack mal ob_start weg...
    einfach mal ausprobieren ;)
    achja guck auch, ob der fehler nich bei dir, also bei deiner i-net config liegt
  4. derturbohummel

    derturbohummel hat kostenlosen Webspace.

    Sollte es daran nicht liegen, mach dir Debugausgaben mit der microtime, damit du siehst, wo du die ganze Zeit verlierst. Aber es d?rfte wohl an den regul?ren Ausdr?cken liegen.
  5. Hallo danielkuhner!

    Wenn die RegExpressions tats?chlich die Ursache der langen Laufzeit sein sollten, dann verzichte doch probehalber mal auf den Modifikator "i", das sollte die Laufzeit in etwa halbieren. Ansonsten probiere deine Funktion zum Ersetzen von BB-Codes mal mit einem leeren $text aus. In diesem Fall m?sste preg_replace() sehr schnell wieder zur?ckkehren, da es ziemlich schnell feststellt, dass es nichts zu ersetzen gibt. Optimieren kannst du die Funktionen, indem du die, alle ziemlich ?hnlich aufgebauten BB-Codes, mit einem preg_replace()-Aufruf statt mit 18 ersetzt. Die Funktion preg_replace() l?sst sich auch mit eindimensionalen Arrays statt mit Strings f?ttern, und die BB-Codes lassen sich auch in einem "regul?ren" Ausdruck zusammenfassen.

    http://de3.php.net/manual/de/function.preg-replace.php

    Such auf der Seite mal nach: "implementing forum code".

    MfG
    alopex
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!