| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

11-06-2005, 15:22
|
|
Laire
Registrierter Benutzer
|
|
Registriert seit: May 2004
Beiträge: 741
|
|
Problem beim Einfügen von Text in mit PHP erstelten Bildern
Hallo,
ich habe folgendes Problem, ich ziehe mir mit Hilfe von PHP Texte von einer Seite, und verarbeite die dann in einer Grafik, aber Sonderzeichen aus dieser Grafik, werden nicht korrekt umgesetzt.
Also die Seite von der ich die Infos ziehe ist:
http://gunbound.softnyx.net/05_ranki...arch_Txt=apo86
das a in fear ist ein Sonderzeichen wird aber in meiner Grafik so dagestellt:
http://stats.ug-team.de/1/1.php?id=apo86
mein Code sieht so aus:
PHP-Code:
<?php
//Alle Fehler an
Error_reporting(E_ALL);
//Feslegung des zu suchenden Nicks
//Holen der Daten von der Gunbound Seite
$f = file_get_contents
("http://gunbound.softnyx.net/05_ranking/01_total.asp?Search_Txt=$id", "r");
//Ausschneiden des relavanten Abschnitts
preg_match_all('=<td width\="120" height\="20" align\="center">*>(.*)GP</td>=siU', $f, $a);
//Auschneiden vom Rang
$b = $a[1][0];
$c = substr($b,0,strpos($b, '('));
$rang = $c;
//Auschneiden Level
$d = strpos($b, 'Rank');
$e = substr($b, $d);
$g = substr($e,0,strpos($e, '.'));
$level = "http://www.stats.ug-team.de/".$g.".gif";
//Auschneiden Gilde
$h = (strpos($e, 'center'))+8;
$i = substr($e, $h);
$z = substr($i,0,strpos($i, '<'));
$gilde = $z;
//Ausschneiden GP
$j = (strpos($i, 'center'))+8;
$k = substr($i, $j);
$l = (strpos($k, 'center'))+8;
$m = substr($k, $l);
$gp = $m;
//echo "Game ID: ".$id."<br />";
//echo "Rang: ".$rang."<br />";
//echo "Level: ".$level."<br />";
//echo "Gilde: ".$gilde."<br />";
//echo "GP: ".$gp."<br />";
$pthImage1 = "statsbg.gif";
$im = imagecreatetruecolor (150, 173);
$tc1 = imagecolorresolve ($im, 255, 255, 255);
$im1 = imagecreatefromgif($pthImage1);
$im2 = imagecreatefromgif($level);
ImageCopy ($im, $im1, 0, 0, 0, 0, 150, 173);
ImageCopy ($im, $im2, 108, 90, 0, 0, 25, 15);
ImageString($im, 3, 55, 47, $id, $tc1);
ImageString($im, 3, 55, 27, $gilde, $tc1);
ImageString($im, 3, 60, 126, $gp, $tc1);
ImageString($im, 3, 55, 67, $rang, $tc1);
ImageString($im, 3, 60, 146, "test", $tc1);
header("Content-Type: image/png");
imagepng($im);
ImageDestroy($im);
?>
Kann mir irgendwer helfen, wie ich das Problem lösen könnte?
Die Seite von der ich die Infos hole, benutzt einen Koreanischen Schriftsatz (charset=euc-kr) aber wenn ich das Wort fear kopier und bei Word einfüge, wir es dort richtig umgesetzt.
Geändert von Laire (11-06-2005 um 15:25 Uhr)
|

11-06-2005, 15:52
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
würde mal ganz einfach vermuten, dass das Alpha nicht in dem verwendeten Schriftsatz zur Verfügung steht.
Zitat:
|
aber wenn ich das Wort fear kopier und bei Word einfüge, wir es dort richtig umgesetzt.
|
Dann erstell die Grafik doch in Word :P
Nein, im Ernst. versuch mal auf korean umzustellen. wenns nicht geht.
|

11-06-2005, 16:15
|
|
Laire
Registrierter Benutzer
|
|
Registriert seit: May 2004
Beiträge: 741
|
|
Wie soll ich den auf Korean umstellen?
Wie kann ich rausfinden welche Schriftart auf der Seite
http://gunbound.softnyx.net/05_ranki...arch_Txt=apo86
verwendet wird?
In den MetaTags steht nur der charset (euc-kr) und den kann ich ja bei meiner Datei nicht bestimmen...
|

11-06-2005, 16:30
|
|
ankh
Member
|
|
Registriert seit: May 2005
Beiträge: 304
|
|
Schau dir mal die mb_string funktionen an.
ich glaub, mit mb_convert_encoding() könntest du was anfangen.
nachtrag:
da sind die Funktionen beschrieben. EUC-KR is auch dabei
Geändert von ankh (11-06-2005 um 16:32 Uhr)
|

11-06-2005, 16:40
|
|
Laire
Registrierter Benutzer
|
|
Registriert seit: May 2004
Beiträge: 741
|
|
Hm hat nciht viel gebracht.
Habe
PHP-Code:
$z = mb_convert_encoding($z, "ISO-8859-1", "euc-kr");
eingefügt, bevor er $z in $gilde speichert, hat sich aber nciht viel verändert, hat ein Zeichen durch ein Fragezeichen ersetzt.....
|

11-06-2005, 17:20
|
|
Hopka
PHP Expert
|
|
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.172
|
|
Ich würde mir mal imagettftext oder imageloadfont ansehen!
Dann kannst du auch "echte" Schriftarten laden, die auch diverse Sonderzeichen enthalten.
|

11-06-2005, 17:27
|
|
ankh
Member
|
|
Registriert seit: May 2005
Beiträge: 304
|
|
ist 'ne bessere Alternative, die mit größerer Wahrscheinlichkeit funktioniert.
ausserdem sieht's dann auch gleich hübscher in der Grafik aus
|

11-06-2005, 22:21
|
|
Laire
Registrierter Benutzer
|
|
Registriert seit: May 2004
Beiträge: 741
|
|
Das ist echt mist, ich habe jetzt knapp 50 verschiednen Schriftarten ausprobiert, aber bisher hat noch keine das Zeichen richtig interpretiert...
|

11-06-2005, 22:26
|
|
ankh
Member
|
|
Registriert seit: May 2005
Beiträge: 304
|
|
wenn's nur das eine Zeichen ist, dann folgender Vorschlag:
ermittle erstmal den ordinal-wert des Zeichens und ersetze diesen mittels preg_replace() durch ein normales "a".
greift zwar nur bei diesem einen speziellen problem, aber müsste funktionieren.
|

11-06-2005, 22:59
|
|
Laire
Registrierter Benutzer
|
|
Registriert seit: May 2004
Beiträge: 741
|
|
Das Problem ist ja, das eine große Anzahl von Sonderzeichen vorkommen können, dann müßte ich von jedem Möglichkeit die es gibt einen ersatzt Möglichkeit einbinden. wie ermittel ich den ordinal Wert?
|

12-06-2005, 00:04
|
|
ankh
Member
|
|
Registriert seit: May 2005
Beiträge: 304
|
|
mit ord() ermittelst den ordinal- bzw. ascii wert eines Zeichens.
Ich ging davon aus, dass es tatsächlich nur dieses eine Sonderzeichen ist.
Mir fiele sonst leider keine Möglichkeit ein, ein zeichen, dass nicht im iso-8859-1 Zeichensatz vorhanden ist in ein sinnvolles Zeichen umzuwandeln, ohne den Text vorher gelesen zu haben und "manuell" ein passendes substitut dafür ermittelt zu haben.
Ne ascii-Wert Zauberei halte ich da nicht für möglich. Schliesslich sieht das Zeichen nur ähnlich aus wie'n "a". aber ich bezweifle, dass sich das im ascii-wert oder mit ner bit-maske auf den "richtigen" buchstaben verschieben lässt.
|

12-06-2005, 10:56
|
|
Laire
Registrierter Benutzer
|
|
Registriert seit: May 2004
Beiträge: 741
|
|
Tja wie es schaut gibt es wohl keine Lösung für das Problem...
|

12-06-2005, 11:16
|
|
ankh
Member
|
|
Registriert seit: May 2005
Beiträge: 304
|
|
wenn's eine überschaubare Menge an sonderzeichen sind, kannst die "hartverdrahtet" konvertieren.
sonst fiele mir da auch nix mehr ein...
|

12-06-2005, 14:08
|
|
Laire
Registrierter Benutzer
|
|
Registriert seit: May 2004
Beiträge: 741
|
|
Problem gelöst, ist aber ein komplezierte weg, es wird jedes zeichen überprüft und ggf. durch koreanische schrifftzeichen ersetzt.
Also kann geclosed werden
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|