| 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! |
 |

23-07-2008, 17:39
|
|
trainmen
Registrierter Benutzer
|
|
Registriert seit: Feb 2008
Beiträge: 49
|
|
2 Fonts ein Wort
Hallo,
ich hab folgendes Problem. Ich habe ein Font in meinem PHP Scrypt und dieser Font hat keine Zahlen enthalten. Nun ist die Frage hat einer eine Idee wie ich 2 Fonts auf ein Wort anwenden kann. Also ich stell mir das so vor $a= Test123 nun soll auf Test123 so die Fonts angewendet werden:
Test = Font1, 123 = Font2
Also soll Font1 für die Buchstaben sein und Font2 für die Zahlen.
Kann man das per php lösen oder gibt es sogar eine andere möglichkeit wie ich die beiden Fonts zusammenführen kann. Also mein eigenen Font aus den beiden erstellen kann.
Geändert von trainmen (23-07-2008 um 18:09 Uhr)
|

23-07-2008, 18:31
|
|
case
Registrierter Benutzer
|
|
Registriert seit: Mar 2007
Beiträge: 265
|
|
php hat nichts aber auch rein garnichts mit fonts zu tun!! Das musst du schon mit HTML realisieren
__________________
signed oder unsigned... das ist hier die Frage
|

23-07-2008, 18:39
|
|
trainmen
Registrierter Benutzer
|
|
Registriert seit: Feb 2008
Beiträge: 49
|
|
Also per html kann ich sagen wenn mit php "$a = Test123" ausgelesen wird gebe "Test" mit Font1 und "123" mit Font2 aus. Es ist ja nicht sicher das "$a = Test123" ist es könnte auch "$a = T1e2s3t" raus kommen. Gibs dafür ein Stichwort also worunter kann ich das finden?
|

23-07-2008, 19:00
|
|
UzumakiNaruto
Registrierter Benutzer
|
|
Registriert seit: Nov 2004
Ort: Hannover
Beiträge: 584
|
|
jedes zeichen einzelt aus dem string lesen und überprüfen ob es eine zahl oder ein buchstabe ist
PHP-Code:
$string = "T1e2s3t";
for ($i=0;$i<strlen($string);$i++)
{
if(is_numeric(substr($string,$i,1)))
{
echo substr($string,$i,1)." ist eine Zahl<br />\n";
} else {
echo substr($string,$i,1)." ist ein Buchstabe<br />\n";
}
}
das weitere verarbeiten must du selber hinbekommen
__________________
Gruß
Uzu
|

23-07-2008, 19:46
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Ich will nicht kleinlich sein, aber so gehts performanceschonender:
PHP-Code:
$string = "T1e2s3t";
for ($i_cnt = 0, $i_max = strlen($string); $i_cnt < $i_max; $i_cnt++) {
if (ctype_digit($string[$i_cnt])) {
echo $string[$i_cnt] . " ist eine Zahl<br />\n";
} else {
echo $string[$i_cnt] . " ist ein Buchstabe<br />\n";
}
}
Geändert von h3ll (23-07-2008 um 19:48 Uhr)
|

23-07-2008, 19:55
|
|
UzumakiNaruto
Registrierter Benutzer
|
|
Registriert seit: Nov 2004
Ort: Hannover
Beiträge: 584
|
|
ist ein string in php automatisch ein array????
dann gehts so natürlich schneller
__________________
Gruß
Uzu
|

23-07-2008, 20:04
|
|
Griecherus
PHP Senior
|
|
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
|
|
Zitat:
Original geschrieben von UzumakiNaruto
ist ein string in php automatisch ein array????
|
Du hast die Möglichkeit, auf einzelne Zeichen einer Zeichenkette mitteils {} bzw. [] zuzugreifen, als wäre sie ein Array - wie h3ll ja schon gezeigt hat. Die eckigen Klammern sind in jedem Fall zu bevorzugen, da die geschweiften mit PHP6 deprecated sind. Zusätzlich ist geplant, den Zugriff auf Zeichen per Klammern mit substr-Funktionalität auszustatten, worauf ich persönlich mich schon sehr freue:
PHP-Code:
// Achtung, voraussichtlich erst ab PHP6 funktionsfähig
$string = 'foobar';
echo $string[0, 3]; // -> ´foo´
echo $string[-1, 1] // -> ´r´
Grüße
Geändert von Griecherus (23-07-2008 um 20:17 Uhr)
|

23-07-2008, 20:15
|
|
asp2php
Banned
|
|
Registriert seit: Feb 2004
Beiträge: 11.746
|
|
Zitat:
Original geschrieben von UzumakiNaruto
ist ein string in php automatisch ein array????
|
Da PHP in C geschrieben ist, soll man nicht wundern, dass string eigentlich array of characters ist
|

23-07-2008, 20:22
|
|
3DMax
PHP Senior
|
|
Registriert seit: Jan 2004
Beiträge: 1.916
|
|
PHP-Code:
$text = 'T11e2s3t';
echo preg_replace('/(\\d+)/', '<span style="font-family:Verdana; font-size:200%">\\1</span>', $text);
EDIT: forum verschluckte mal wieder backslashe 
Geändert von 3DMax (23-07-2008 um 20:25 Uhr)
|

25-07-2008, 17:42
|
|
trainmen
Registrierter Benutzer
|
|
Registriert seit: Feb 2008
Beiträge: 49
|
|
Danke hab es soweit hinbekommen. Habe jetzt nur das Problem das die ersten Beiden Zeichen (rechts weil ich beim string die reinfolge geänder habe und der Text rechtsbündig ist) sich überschreiben(Siehe link Ausgabe). Ich versteh nur nicht warum dies passiert -.- .
Dies wird ausgelesen:
$row['name'] = Storm2008
Das ist das PHP Scrypt:
PHP-Code:
$sql = "SELECT `name` FROM guild WHERE guildid = '$guild'";
Header("Content-Type: image/png");
$query = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($query);
$img = ImageCreateFromPNG('Mensch_Hexenmeister_m2.png');
$yellow = ImageColorAllocate($img, 255, 218, 88);
$black = ImageColorAllocate($img, 0, 0, 0);
$size_4 = 18;
$size_5 = 12;
$font_1 = "Fonts/Van Helsing.ttf";
$font_2 = "Fonts/TektonPro-BoldCond.otf";
$banner_x = 500;
$banner_y = 167;
$banner_pos1 = 27;
$guildn_y = 164;
$guildn_y_5 = 159;
if($row == 0)
{
$guild = "Keine Gilde";
}
else
{
$guild_string = strrev($row['name']);
for ($i=0;$i<strlen($guild_string);$i++ AND $banner_pos1 = $banner_s1[4] + $banner_pos1)
{
if(is_numeric(substr($guild_string,$i,1)))
{
$guild = substr($guild_string,$i,1);
$banner_s1 = imagettfbbox($size_5, 0, $font_2, $guild);
$char_font = $banner_x - ($banner_pos1 + $banner_s1[4]);
$guildn_x = $char_font;
imagefttext($img, $size_5, 0, $guildn_x, $guildn_y_5, $black, $font_2, $guild);
imagefttext($img, $size_5, 0, $guildn_x - 2, $guildn_y_5 -2, $yellow, $font_2, $guild);
}
else
{
$guild = substr($guild_string,$i,1);
$banner_s1 = imagettfbbox($size_4, 0, $font_1, $guild);
$char_font = $banner_x - ($banner_pos1 + $banner_s1[4]);
$guildn_x = $char_font;
imagefttext($img, $size_4, 0, $guildn_x, $guildn_y, $black, $font_1, $guild);
imagefttext($img, $size_4, 0, $guildn_x - 2, $guildn_y -2, $yellow, $font_1, $guild);
}
}
}
ImagePNG($img);
}
}
Das kommt als Ausagbe raus:
http://trainmen.tr.funpic.de/Banner/gilde.png
|

26-07-2008, 18:53
|
|
trainmen
Registrierter Benutzer
|
|
Registriert seit: Feb 2008
Beiträge: 49
|
|
EDIT:
Kann mir keiner sagen warum die 0 und die 1 auf die gleiche position geschrieben werden?
Geändert von trainmen (27-07-2008 um 20:24 Uhr)
|

26-07-2008, 19:08
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Mach doch mal Testausgaben für die letzte 0 und die 8.
|

27-07-2008, 20:40
|
|
trainmen
Registrierter Benutzer
|
|
Registriert seit: Feb 2008
Beiträge: 49
|
|
Also wenn ich nur die Augabe 0 Ausgebe erscheint die an der ersten Postion und das gleiche bei der 1. Sowie bei den anderen Zahlen, wenn ich die nur einzeln augebe. Aber wenn ich ab positon 1 anfange hab ich das problem nicht.
|

31-07-2008, 15:48
|
|
trainmen
Registrierter Benutzer
|
|
Registriert seit: Feb 2008
Beiträge: 49
|
|
Nagut hab das Problem jetzt so gelösst in dem ich einfach eine Leerzeil e vorne angehangen habe.
|
|
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
|