Quote - Funktion bringt den Server zum Absturz
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
action
beitrag
bestimmte lnge
board
center
email
fehler
fehlermeldung
folgende meldung
funktion
gerade hochladen
jugend
post
rufen
schatz
shock
zeile
beraus
-
Hallo,
ich benutze folgende Quote - Funktion:
function quote($quote) { $regex = '#\[ quote]((?:[^[]|\[(?!/?quote])|(?R))+)\[/ quote]#'; if (is_array($quote)) { $quote = '<center><div id=quote><b>Zitat</b>: <br><br>'.$quote[1].'</div></center>'; } return preg_replace_callback($regex, 'quote', $quote); }
Aber wenn der Posts eine bestimmte länge überschreite bringt diese Funktion den Server zum absturtz.
So rufe ich die funktion auf:
quote(bbcode(smilies($a_row['post']))
Und jedesmal schmiert mir der Server ab.
Aber warum?
Beitrag geändert: 12.11.2006 10:53:28 von newwarrior
Beitrag geändert: 12.11.2006 10:53:59 von newwarrior -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Welche Fehlermeldung kommt denn?
Sweit ich weiß, sind die Funktionen sehr Rechenaufwendig. Außerdem rufst du in einer Zeile DREI Funktionen auf.
Ich schätze mal du rkeigst den MaxExecutionTime-Fehler, der besagt, dass die zeit, die dem Script zum ausführen freigestellt ist überschrtten wurde. (Bei Lima 30s soweit ich weiß)
Das beugt gegen endlos Schleifen und fehlerhaften Code vor, der den Server sonst überaus überölasten würde.
Wie gesagt, geb uns vielleicht mal den Link zur Seite, den Quälcode der Drei Funktionen (bbcode, quote, smilies) und die Fehlermeldung. -
Ok,
hier mal die Quellcodes:
[bbcode / quote]
<?php function bbcode ($bbcode){ $search = array( '`\[b\](.*)\[\/b\]`Usi', '`\[center\](.*)\[\/center\]`Usi', '`\[u\](.*)\[\/u\]`Usi', '`\[i\](.*)\[\/i\]`Usi', '`\[s\](.*)\[\/s\]`Usi', '`\[url\](.*)\[\/url\]`Usi', '`\[img\](.*)\[\/img\]`Usi', '`\[email\](.*)\[\/email\]`Usi', '`\[color=(.*)\](.*)\[\/color\]`Usi', '`\[size=(.*)\](.*)\[\/size\]`Usi', ); $replace = array( '<b>\\1</b>', '<center>\\1</center>', '<u>\\1</u>', '<i>\\1</i>', '<s>\\1</s>', '<a href=\\1 target=_blank>\\1</a>', '<center><div id=img><a href=\\1 target=_blank><img border=0 src=\\1></a></div></center>', '<a href=mailto:\\1>\\1</a>', '<span style=color:\\1;>\\2</span>', '<span style=font-size:\\1px;>\\2</span>', '<center><div id=code_header>Code:</div><div id=code_content>\\1</div></center>'); $bbcode = preg_replace($search, $replace, $bbcode); $bbcode = nl2br($bbcode); return $bbcode; } function quote($quote) { $regex = '#\[quote]((?:[^[]|\[(?!/?quote])|(?R))+)\[/quote]#'; if (is_array($quote)) { $quote = '<center><div id=quote><b>Zitat</b>: <br><br>'.$quote[1].'</div></center>'; } return preg_replace_callback($regex, 'quote', $quote); } ?>
[smilies]
<?php function smilies ($smilies) { $smilies= str_replace(":badgrin:","<img border=\"0\" src=\"images/yellow/badgrin.gif\">",$smilies); $smilies= str_replace(":biggrin:","<img border=\"0\" src=\"images/yellow/biggrin.gif\">",$smilies); $smilies= str_replace(":confused:","<img border=\"0\" src=\"images/yellow/confused.gif\">",$smilies); $smilies= str_replace(":cool:","<img border=\"0\" src=\"images/yellow/cool.gif\">",$smilies); $smilies= str_replace(":cry:","<img border=\"0\" src=\"images/yellow/cry.gif\">",$smilies); $smilies= str_replace(":doubt:","<img border=\"0\" src=\"images/yellow/doubt.gif\">",$smilies); $smilies= str_replace(":lol:","<img border=\"0\" src=\"images/yellow/lol.gif\">",$smilies); $smilies= str_replace(":mad:","<img border=\"0\" src=\"images/yellow/mad.gif\">",$smilies); $smilies= str_replace(":neutral:","<img border=\"0\" src=\"images/yellow/neutral.gif\">",$smilies); $smilies= str_replace(":razz:","<img border=\"0\" src=\"images/yellow/razz.gif\">",$smilies); $smilies= str_replace(":redface:","<img border=\"0\" src=\"images/yellow/redface.gif\">",$smilies); $smilies= str_replace(":rolleyes:","<img border=\"0\" src=\"images/yellow/rolleyes.gif\">",$smilies); $smilies= str_replace(":sad:","<img border=\"0\" src=\"images/yellow/sad.gif\">",$smilies); $smilies= str_replace(":shock:","<img border=\"0\" src=\"images/yellow/shock.gif\">",$smilies); $smilies= str_replace(":smile:","<img border=\"0\" src=\"images/yellow/smile.gif\">",$smilies); $smilies= str_replace(":surprised:","<img border=\"0\" src=\"images/yellow/surprised.gif\">",$smilies); $smilies= str_replace(":wink:","<img border=\"0\" src=\"images/yellow/wink.gif\">",$smilies); return $smilies; } ?>
Vom Firefox bekomme ich folgende Meldung: Die Verbindung zum Server wurde zurückgesetzt, während die Seite geladen wurde.
Hier der Link:
http://newwarrior.lima-city.de/jugend/index.php?action=board&topic_id=1
Dauert aber noch ein mom muss sie gerade hochladen
LOL ich habe gerade festgestallt bei lima macht er es und bei mir zuhause nicht.
Beitrag geändert: 12.11.2006 11:21:19 von newwarrior -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage