PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Euro-Symbol mit "imagechar" zeichnen


Holly-Marie
25.12.2005, 02:01:39
Frohe Weihnacht,

ja ich weis um die Zeit und an dem Tag befasst man sich eigentlich nicht mit so was aber so vorm ins Bettgehen kam mir das gerade noch mal in die Gedanken ...

Ich bin noch recht neu in PHP und bin jetzt auf ein Problem gestoßen zu dem ich keine Hinweise finde.

Kann ich mit
int imagechar ( int im, int font, int x, int y, string c, int col )
ein Euro-Symbol zeichnen? (€)

Ich kann es zwar in das Script schreiben nur wird das Zeichen komplett ignoriert. (fand ich nicht überraschend)
Ich nehme an ich müsste PHP sagen es soll einen bestimmten Zeichensatz verwenden (welchen und wie). Das scheint aber nicht zu gehen oder habe ich die Funktion übersehen?
Im extrem Fall bliebe nur das Zeichen selbst zu zeichnen (line, arc).
Es wäre nur halt aufwendiger das Zeichen, dann hinter dem Text zu plazieren.

Oder lassen sich Zeichen überdefinieren wie damals in BASIC?
(vermute seit true type geht das nicht mehr)

Es geht mir dabei um den Platz, desshalb kann ich Eur nicht benutzen.

Oder ich mache alles in $$.
Dann wäre es aber ideal wenn ich irgendwoher den tages aktuellen Euro-Dollar-Kurs abrufen könnte. Hat dazu jemand einen Hinweis?

Schon mal vielen Dank im voraus.

Holly

Holly-Marie
26.12.2005, 14:39:52
Hallo noch mal,

Ich hab noch was weiter probiert und bin etwas weiter gekommen.

Hier ein möglishces Script um den aktuellen Wechselkurs einer Währung zur Basis Euro von der Europäischen Zentralbank abzurufen:

$exchange = array();
$cell = "";
$c = "";

function startElement($parser, $element_name, $element_attribute) {
global $exchange;
global $cell;
global $c;
$att = array();
//Umwandeln in Kleinbuchstaben
$element_name = strtolower($element_name);
//Überprüfung des Elementnames
if ($element_name=="cube") {
foreach ($element_attribute as $ele) {
$att[] = $ele;
}
if (count($att) == 1 && $att[0] != "") {
$cell .= $att[0];
}
else if (count($att) == 2 && 0 == strcmp ($att[0], $c)) {
$exchange[$cell] = $att[1];
$cell = "";
}
}
}
function endElement($parser, $element_name) {
//tue nichts
}
function cdata($parser, $element_inhalt) {
//tue nichts
}

function rate($currency) {
global $exchange;
global $c;
$exchange = array();
$c = $currency;
//hole aktuelle Daten von der europäischen Zentralbank
$xmlFile = file("http://www.ecb.int/stats/eurofxref/eurofxref-hist.xml");
$parser = xml_parser_create();

xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "cdata");

foreach($xmlFile as $element) {
xml_parse($parser, $element);
}

xml_parser_free($parser);

// sortiere so dass der aktuellste Wert vorn steht
krsort ( $exchange , SORT_STRING );
//gib den aktuellsten Wert zurück
return reset($exchange);
}

Für das Zeichnen, des Euro-Symbols versuche ich mich jetzt mit:

imagettftext(...)

ah super ich habs gerade:
der normale WinXP Arial.ttf font scheint das Euro-Symbol nicht zu haben und UNI-Code-Arial war mir zu groß.

Aber ich hab das hier gefunden:

http://ftp.debian.org/debian/pool/non-free/x/xfonts-scalable-nonfree/xfonts-scalable-nonfree_4.2.1.orig.tar.gz

die luxi....ttf fonts haben den normalen Zeichensatz + Euro Symbol.

Vielleicht hilft das jemandem.

Frohe Weihnacht

Holly