 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
06.05.2003, 22:45
|
#1
|
|
TP-Veteran
Registriert seit: Apr 2002
Ort: Landeshauptstadt Düsseldorf
|
Ausgabe durchsuchen und ggfs ersetzen
Hi Leute,
Ich frage die Datenbank wie folgt ab:
PHP-Code:
$result = mysql_query("SELECT * FROM $tabelle ORDER BY id DESC",$verbindung);
while ($myrow = mysql_fetch_row($result)) {
printf("
<span class=\"ueberschrift\">%s</span><br>
<span class=\"text\"><img src=\"%s\" border=\"0\" align=\"left\">%s - %s</span><br><br><hr><br><br>",
$myrow[1], $myrow[4], $myrow[5], $myrow[3]);
}
Jetzt möchte ich, dass in dem ausgegebenen Text ($myrow4) alle :) ;) 8) usw durch einen jeweiligen <img ...>-Tag ersetzt werden. Für :) zum Beispiel <img src="smile.gif"> oder für ;) <img src="wink.gif">
Weiß einer von euch wie das geht?
Danke schon mal für eure Mühen!!
mrX
|
|
|
06.05.2003, 22:55
|
#2
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Das kannst Du ganz einfach per RegExp lösen. Wahlweise schiebst Du den entsprechenden String für jedes Smilies einzlen durch, oder Du lässt es elegant in einer Schleife laufen:
PHP-Code:
function smilies($string)
{
$smilieString = array("~:\)~i","~:D~i","~;\)~"); // Weitere Smilies können einfach eingefügt werden
$smilieNames = array("lachen","grinsen","zwinkern");
$smilieHtml = array();
while(list($currentKey,$currentValue) = each($smilieNames))
{
$path = array(" <img src=\"./smilies/",".gif\" align=\"absmiddle\"> ");
$currentValue = $path[0].$currentValue.$path[1];
array_push($smilieHtml,$currentValue);
}
$formattedString = preg_replace($smilieString,$smilieHtml,$string);
return $string;
}
__________________
Give up yourself into the moment — The time is now.
|
|
|
07.05.2003, 11:44
|
#3
|
|
TP-Veteran
Registriert seit: Apr 2002
Ort: Landeshauptstadt Düsseldorf
|
Wie oder an welcher Stelle muss ich diese Funktion aufrufen?
mrX
|
|
|
07.05.2003, 12:41
|
#4
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Irgendwo in Deiner Ausgabe befindet sich der String aus der DB, welcher den Text mit den Smilies enthält - diesen übergibst Du innerhalb der Ausgabe einfach der Funktion:
PHP-Code:
while ($myrow = mysql_fetch_row($result))
{
echo "Bla bla bla ".smilies($myrow[smilietext])." bla ...";
}
__________________
Give up yourself into the moment — The time is now.
|
|
|
07.05.2003, 16:16
|
#5
|
|
TP-Veteran
Registriert seit: Apr 2002
Ort: Landeshauptstadt Düsseldorf
|
Irgendwie bin ich da zu blöd für
PHP-Code:
$result = mysql_query("SELECT * FROM $tabelle ORDER BY id DESC",$verbindung);
while ($myrow = mysql_fetch_row($result)) {
printf("
<tr>
<td width=\"129\" valign=\"top\">
<span class=\"bold\">%s</span> schrieb am<br><span class=\"bold\">%s</span> um <span class=\"bold\">%s</span>:<br>
%s
<br><br></td>
</tr>",
$myrow[1], $myrow[2], $myrow[3], $myrow[4]);
}
Das ertse %s (myrow[1]) gibt mir einen Benutzernamen aus. Das zweite %s (myrow[2]) das Datum, das dritte %s (myrow[3]) die Uhrzeit des Eintrags und das fünfte %s (myrow[4]) den Text mit den Smilies, der ersetzt werden soll.
Kann mir das vielleicht jemand zusammenhängend aufschreiben?! Also angefangen bei der "Durchsuch-" und "Ersetz-"Funktion bis hin zur DB ausgabe.
Das wäre total nett - Danke schon mal
mrX
|
|
|
07.05.2003, 16:27
|
#6
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
PHP-Code:
<?php
$result = mysql_query("SELECT * FROM $tabelle ORDER BY id DESC",$verbindung);
while ($myrow = mysql_fetch_row($result))
{
echo "<tr><td width=\"129\" valign=\"top\"><span class=\"bold\">$myrow[1]</span> schrieb am<br><span class=\"bold\">$myrow[2]</span> um <span class=\"bold\">$myrow[3]</span>:<br><br><br></td></tr>";
echo smilies($myrow[4]);
}
?>
__________________
Give up yourself into the moment — The time is now.
|
|
|
07.05.2003, 16:38
|
#7
|
|
TP-Veteran
Registriert seit: Apr 2002
Ort: Landeshauptstadt Düsseldorf
|
Ich habe die Ausgabe jetzt so gemacht, wie du (Lars) es da gemacht hat. Über der Ausgabe habe ich die Funktion stehen.
Es kommt aber immer diese Fehlermeldung: Warning: Compilation failed: unmatched parentheses at offset 1 in /www/htdocs/v078121/show_shout.php on line 21
in dieser Zeile steht bloß return $string;
Was habe ich jetzt schon wieder falsch gemacht?
mrX
|
|
|
07.05.2003, 16:45
|
#8
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Den Fehler habe ich gemacht.  Es muss natürlich so aussehen:
PHP-Code:
return $formattedString;
__________________
Give up yourself into the moment — The time is now.
|
|
|
07.05.2003, 16:48
|
#9
|
|
TP-Veteran
Registriert seit: Apr 2002
Ort: Landeshauptstadt Düsseldorf
|
Ok das kann ich nachvollziehen - ehrlich gesagt hatte mich das zu erst auch etwas gewundert.
Jetzt habe ich das return... verbessert trotzdem: Warning: Compilation failed: unmatched parentheses at offset 1 in /www/htdocs/v078121/show_shout.php on line 21
mrX
|
|
|
07.05.2003, 16:53
|
#10
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Uuups, da hat das Forum wieder mal die Backslashes geschluckt, es muss nämlich so aussehen:
Code:
$smilieString = array("~:\)~i","~:D~i","~;\)~");
__________________
Give up yourself into the moment — The time is now.
|
|
|
07.05.2003, 16:58
|
#11
|
|
TP-Veteran
Registriert seit: Apr 2002
Ort: Landeshauptstadt Düsseldorf
|
Es klappt!!! Super vielen Dank
mrX
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 03:09 Uhr.
|
 |