<b>-Tags verschwinden lassen

speicher

Erfahrenes Mitglied
Hallo ich habe ein kleines Darstellungsproblem.
Ich benutze für ein Menü dynamische Beschriftungen aus einer Mysql-Datenbank. Diese werden zusammen mit dem Hintergrund zu einem Button zusammengefügt. Nun wollte ich aber noch den Text bearbeiten. Dafür verwende ich eine eigene Funktion, die dem ersten Buchstaben ein "_" varnstellt und diesen Buchstaben mittels <b> fett schreibt. Das funktioniert an diversten Stellen auf der Seite bestens jedoch bloß bei der Buttonerzeugung nicht. Dort sind dann die <b> - Tags noch zu sehen. Wie kann ich das verhindern
 
Zeig uns doch mal den entsprechenden Code dazu, dann können wir mal schauen, wo der Fehler liegt, ...

redlama
 
Ich hab gerad mal ausprobiert einen Button "FETT" zu beschriften und habs mit den <b>-Tag nicht geschafft, nur über die Style-Eigenschaften hab ich das hinbekommen...

Code:
<input type="Submit" name="" value="hallo" style="font-weight: bold;">

Klärt mich auf wenns mit dem Tag doch geht...
 
Also hier mal die wichtigsten Skriptteile. Lasse ich den Aufruf
fett() bei $cv= fett($cvu[$id]); weg funktioniert alles. Im Bild ist zu sehen, dass die Menüüberschrift wie erwünscht dargestellt wird, der Menüpunkt jedoch nicht.

PHP:
//Abfrage aus DB - Verbindung ist da schon vorhanden

$abfrage="SELECT * FROM daten";
$ergebnis=mysql_query($abfrage);

while ($hier=mysql_fetch_array($ergebnis))
{
$cvu = unserialize($hier['cv']);

}
//hier soll nun der String mit der Fkt. fett bearbeitet werden.
$cv= fett($cvu[$id]);




// Aufruf zum Buttonerzeugen in Menu.php


$main2 = new menu('<img src="button.php?fg=ff8000&bg=dddddd&txt='.$cv.'" border="0" alt="menu 2">', 'menu 2');
  $main2->add('<img src="button.php?fg=666666&bg=eeeeee&txt=%20submenu%202_3" border="0" alt="submenu 2_3">', "page3.php?$QUERY_STRING", '_self');
  $main2->add($sub2);







// erste Buchstabe fett plus "_"
function fett($wort)
{
    $word=strtolower($wort);
    $sub=substr($word,0,1);
    $sub2=substr($word,1);
    $word=str_replace($sub,"<b>_".$sub."</b>",$sub);
    $word= $word.$sub2;
    return($word);

}






//Button erzeugen


  define("TextFONT", "3");

  function ConvertColor($hexVal){
    $ColorVal = array(3);
    for($i = 0; $i < 3; $i++)
      $ColorVal[$i] = HexDec(substr($hexVal, $i * 2, 2));
    return $ColorVal;
  }

  $width = 110;
  $offset = 2;
  $imgFRAME = ImageCreate($width, ImageFontHeight(TextFONT)+$offset);

  list($red, $green, $blue) = ConvertColor($bg);
  $bgCOLOR = ImageColorAllocate($imgFRAME, $red, $green, $blue);

  list($red, $green, $blue) = ConvertColor($fg);
  $fgCOLOR = ImageColorAllocate($imgFRAME, $red, $green, $blue);

  ImageFill($imgFRAME, 1, 1, $bgCOLOR);
  ImageString($imgFRAME, TextFONT, 1, 1, $txt, $fgCOLOR);

  header("Content-type: image/png");
  ImagePNG($imgFRAME);
  ImageDestroy($imgFRAME);
 

Anhänge

  • capture.jpg
    capture.jpg
    4,1 KB · Aufrufe: 44
M4st3r hat gesagt.:
Ich hab gerad mal ausprobiert einen Button "FETT" zu beschriften und habs mit den <b>-Tag nicht geschafft, nur über die Style-Eigenschaften hab ich das hinbekommen...

Code:
<input type="Submit" name="" value="hallo" style="font-weight: bold;">

Klärt mich auf wenns mit dem Tag doch geht...


Ich nehme ja auch nicht <input>
 
Also die Funktion an sich funktioniert!
Ich habe Deinen Code gerade mal getestet:
PHP:
<?php
function fett($wort)
{
  $word=strtolower($wort);
  $sub=substr($word,0,1);
  $sub2=substr($word,1);
  $word=str_replace($sub,"<b>_".$sub."</b>",$sub);
  $word= $word.$sub2;
  return($word);
}
$link = fett("lebenslauf");
echo $link;
?>
So geht es wie gesagt!
Ich denke eher, dass das Problem darin besteht, dass beim erstellen der Grafik der Inhalt des Strings nicht interpretiert, sondern direkt ausgegeben wird.
Versuch mal bitte folgendes:
PHP:
$main2 = new menu('<img src="button.php?fg=ff8000&bg=dddddd&txt='.echo $cv.'" border="0" alt="menu 2">', 'menu 2');
Wobei ich mir nicht ganz sicher bin, ob das funktioniert, ...

redlama
 
Leider funktioniert das mit echo $cv auch nicht.

Hat jemand vielleicht noch eine Idee. Wenn ich strip_tags() z.B. anwende verschwinden die <b></b> Strings, jedoch wird auch nichts fett!
Danke
 
Zuletzt bearbeitet:
Habe gerade nochmal selbst getestet woran genau es liegt und da habe ich festgestellt, dass das so ja garnicht gehen kann!
<b> ist ein HTML Tag. Text, den Du in eine Grafik einfügst, ist aber nicht HTML.
Woher soll also die Grafik also wissen, was <b> bedeutet?
Aber ob und wie Du mit imagestring() Text fett darstellen kannst, weiß ich leider auch nicht, ...

redlama
 
Naja, wenn es nicht geht, dann werde ich mich mit dem begnügen was ich habe. Danke nochmals für die Antworten.
 
Zurück