str_replace ---> Lektüren bringen mir nichts

  • Themenstarter Themenstarter freakassault
  • Beginndatum Beginndatum
Wenn das Baby das vorgekaute essen aber nicht schluckt wird es trotzdem verhungern..... (Aufgeschriebener Funktionsaufruf war doch schon vorgekaut.....und wie man eine Funktion aufruft steht auch x-Millionenmal beschrieben...) ;)
 
Tut mir leid VOODO, dass ich dich beleidigt habe, aber wie man sieht, bin ich noch nicht sehr lange in diesem Board. ICh kannte nicht Deine "Art zu Antworten".

Deswegen. Sorry.

Bevor das ganze in eine Grundsatzdisskusion ausatet, versuche ich es einfach nochmal alleine.

Danke nochmal an alle, die sich Zeit genommen habe.


Bye,

Freak
 
Wenn es einen interessiert, wo mein Problem immernoch liegt, habe ich hier was.

Ich habe eine simple Abfrage:
PHP:
<?php 
include("dbconnect.php"); 
  $abfrage = "SELECT kennzeichen, datum, tag, beschreibung, link FROM bildernews ORDER BY id DESC LIMIT 5";
  $ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_object($ergebnis))
    { 
	 	echo "<tr>
     <td width='100' align='center'>$row->kennzeichen
     </td>
     <td width='80' align='right'>$row->datum
     </td>
     <td width='70' align='center'>$row->tag
     </td>
	 <td width='300' align='center'><a href='$row->link'>$row->beschreibung</a><br>
     </td>
   </tr>";
}
  ?>

ich habe auch eine icons.php, in der die str_replaces drin sind:
PHP:
<?php
str_replace("NEW", "<img src='icons/new.gif'>");

str_replace("TOP", "<img src='icons/new.gif'>");

str_replace("HOT", "<img src='icons/new.gif'>");

str_replace("EXTREME HOT", "<img src='icons/new.gif'>");
?>
jetzt habe ich es versucht einzubauen (in die abfrage.php):
PHP:
//...
include("incons/icons.php")
while($row = mysql_fetch_object($ergebnis))
    { 
	 	echo "<tr>
     <td width='100' align='center'>$row->kennzeichen
     </td>"

//..

Ich habe mir auch überlegt, dass diese icons.php in der WHILE schleife ja jede zeile überprüfen muss und gegebenfalls mit dem str_replace das vorhandene Zeichen ersetzen soll. Hier liegt mein problem, weil ich nicht weiß, wie ich das in der abfrage.php schaffe. Soll ich die str_replace gleich in die abfrage.php reinsetzen oder rentiert sich eine extra icons.php datei?!

Wenn jemand Lust haben sollte, mir zu helfen, würde ich mich sehr freuen,

Bye,

Freak
 
Am einfachsten so:
PHP:
include("incons/icons.php");
while($row = mysql_fetch_object($ergebnis))
    {
         echo "<tr><td width='100' align='center'>".smilies($row->kennzeichen)."</td>";
  }

Wobei dieses Script davon ausgeht, dass um deine str_replaces eine Funktion smilies() wie in deinem ersten Post drum herum ist.
Allerdings muss hierbei bei jedem Durchlauf jedes Str_replaces ausgeführt werden. Daher wäre es fast sinnvoller den Inhalt erst zu speichern und danach dort ein Replace drüberlaufen zu lassen.

PHP:
include("incons/icons.php");
$data = '';
while($row = mysql_fetch_object($ergebnis))
    {
         $data .= "<td width='100' align='center'>"$row->kennzeichen."</td>";
  }

//jetzt ersetzen
$data = smilies($data);

Noch sparsamer wäre jetzt wenn die Funktion das über eine Referenz macht und nicht mit einer lokalen Kopie, also einfach die Function zeile ändern:

PHP:
function smilies(&$text)

und am Ende das Return weglassen.
Dann sähe der Aufruf für mein Beispiel 2:
smilies($data);
anstatt
$data = smilies($data);
 
@ freakassault

Generell für Dein Verständnis von str_replace()
PHP:
str_replace("NEW", "<img src='icons/new.gif'>");
Hier geht der String ab in dem ersetzt werden soll!
Richtig:
PHP:
str_replace("NEW", "<img src='icons/new.gif'>", $icon);
BTW
Was spricht eigentlich dagegen gleich 'new.gif' in ´bildernews.kennzeichen´ einzutragen?


@ Ben Ben

Ich hätte noch eine Konstantenvariante:
PHP:
define(_NEW,"new.gif");
define(TOP,"top.gif");
while($row = mysql_fetch_object($ergebnis)) 
    { 
         print "<tr><td width='100' align='center'>"<img src='icons/".$row->kennzeichen."'></td>"; 
  }
Wobei hier m.E. print erforderlich ist. Ausserdem funktioniert das nicht mit reservierten Wörtern (NEW), daher _NEW
 
Zurück