function überschreitet execution time

ElGrAnDiOs

Mitglied
function funktioniert nich :(

Hallo,

Ich hab mir gerade mal eine kleine funktion geschrieben, die nichts weiter tut, als einen String, nach mehreren Substrings zu durchsuchen und diese durch bestimmte andere Strings zu ersetzen ( Smiliereplacement für ein newsscript )

PHP:
function replace_smilies($text) {
	$retvalue= $text;
	$smilies = (":),;),:(,:D,:P,:?,:|,:*(,^^,:x,:angry:");
	$smilie_array = explode(',', $smilies);
	for($x=0; x<count($smilie_array); $x++){
	  str_replace($smilie_array[$x],'<img src=images/smilie'.$x.'.gif width=20 height=20 border=0>', $retvalue);
	};
	return $retvalue;
}

So nun krieg ich aber vom server immer gesagt, dass die function die max. execution time überschreitet, und ich weis nicht wieso... kann mir ma einer schnell helfen, denn ich seh den fehler nicht, da ja eigentlich keine endlosschleife entstehen darf :(

falls jemand ne andere lösung für das problem kennt, also wie ich mehrere Substrings in einem String durch andere, bestimmte String ersetze ( also für ":)" z.B. "Hier kommt ein :)" und für ";)" "Hier kommt aber ein ;)" ) dann kann er mir das auch gerne sagen, bin noch nich so bewandert :(

gratz und gruß
egd
 
Zuletzt bearbeitet:
PHP:
for($x=0; x<count($smilie_array); $x++){

Ich glaube du wolltest $x < count($smilie_array) schreiben, oder? ;)
 
joa ;) danke für den tip!

aba jetzt gleich meine nächte frage: es klappt nicht :(

wenn ich es auf einen String anwende, also z.B.

PHP:
$string_mit_smilies = replace_smilies($string_ohne_smilies);
echo $string_mit_smilies;

dann werden nicht die bilder ausgegeben, sondern nur der ursprüngliche text, also $string_ohne_smilies! :(

Ich versteh nich wieso mir die function das antut, kann mir ma einer weiterhelfen?

egd
 
Ups, einen kleinen Anwendungsfehler habe ich übersehen.

PHP:
function replace_smilies($text) {
    $retvalue= $text;
    $smilies = (":),;),:(,:D,:P,:?,:|,:*(,^^,:x,:angry:");
    $smilie_array = explode(',', $smilies);
    for($x=0; $x < count($smilie_array); $x++){
      $retvalue = str_replace($smilie_array[$x],'<img src=images/smilie'.$x.'.gif width=20 height=20 border=0>', $retvalue);
    };
    return $retvalue;
}

So sollte es funktionieren. Du hattest vergessen, str_replace auch wieder $retvalue zuzuordnen.
 
Zurück