PDA

Vollstndige Version anzeigen : Problem mit Ersetzen von Zeichen


Sengi
31-07-2004, 19:59
Schnen Samstag euch allen :)

Ich qule mich schon seid einigen Stunden mit folgendem Problem rum:

Ein Array ist gefttert mit folgenden Werten: :),:(,:keks:,:shock,8-)
und trgt den Namen smile_code.
Ein zweiter Array beinhaltet die passenden Urls fr die Grafiken der Smilies.

So folgender String muss bearbeitet werden:

$string=":) Test Bei mir klappt rein gar nichts :(";

Um jetzt den Smile Code gegen die passende Url zu tauschen versuche ich folgendes:

$string=str_replace($smile_code,$smile_url,$string);

Das klappt aber leider nicht. Der String bleibt unverndert.

Die beiden Arrays beinhalten ca. 300 Eintrge und werden aus ner DB eingelesen.

Habe es auch schon mit anderen Funktionen versucht wie mit preg_match(), aber ich bekomm das einfach nicht hin...

Vielleicht hat ja jemand von euch eine kleine Idee die mir weiter helfen knnte.


greetz Sengi

Ren_M
31-07-2004, 20:10
Original geschrieben von Sengi

Die beiden Arrays beinhalten ca. 300 Eintrge und werden aus ner DB eingelesen.
Mit den beiden Arrays meinst du $smile_code und $smile_url ?

Poste mal den Code wie du aus den Werten aus der DB die beiden Arrays erstellst.

Sengi
31-07-2004, 20:38
hier :

$sql_smile="SELECT
code,smile_url
FROM
phpbb_smilies";
$result_smile=mysql_query($sql_smile) or die(mysql_error());
$i=0;
while($row_smile=mysql_fetch_assoc($result_smile)){
$smile_code[$i]=$row_smile['code'];
$smile_url[$i]=$row_smile['smile_url'];

}

$string=str_replace($smile_code,$smile_url,$string);


hab noch ein paar andere mglichkeiten hier rumfliegen die auch alle nicht funktionieren... aber an diesem script arbeite ich momentan mit der hoffnung dass es vielleicht funktionieren knnte :)

Ren_M
31-07-2004, 20:48
$i=0;
while($row_smile=mysql_fetch_assoc($result_smile)){
$smile_code[$i]=$row_smile['code'];
$smile_url[$i]=$row_smile['smile_url'];

}

$i ist immer 0 dein jeweiliges Array hat nur ein Element bzw. du berschreibst bei jedem Schleifendurchlauf dieses. Am Ende hast du in dem jeweiligen Array immer nur das letzte Element aus der DB.

Schreibe unter $smile_url[$i]=$row_smile['smile_url'];

$i++;

Sengi
01-08-2004, 13:05
Argh sowas muss mir auch immer im Eifer des Gefechts passieren :)

Dank dir