php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.04.2009, 18:28  
Neuer Benutzer
 
Benutzerbild von nowayout
 
Registriert seit: 27.04.2009
Beiträge: 10
nowayout befindet sich auf einem aufstrebenden Ast
Standard Breite eines Strings in Pixeln

Hallo,

ich würde gerne wissen, ob es eine PHP-Funktion gibt, die die Breite(in px) eines Strings abhängig von der Stringlänge, der Schriftart und Schriftgröße berechnet? Alternativ müsste ich die dann selbst schreiben, bloss weiß ich leider nicht, wo man Spezifikationen zu Schriftarten herbekommt, also z.B. wie breit und wie hoch ist ein Klein/Großbuchstabe in Arial Schriftgröße 8, etc.



danke und Grüße
Franz
nowayout ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.04.2009, 18:55  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

PHP läuft auf dem Server und kann nicht wissen, welche Schriftart und -Größe der User in seinem Browser eingestellt hat.
Wolla ist offline  
Alt 30.04.2009, 19:23  
Neuer Benutzer
 
Benutzerbild von nowayout
 
Registriert seit: 27.04.2009
Beiträge: 10
nowayout befindet sich auf einem aufstrebenden Ast
Standard

Das ist ja echt ein sinnvoller Beitrag...Das System kann ja auch nicht raten welchen String ich ausgewertet haben will

Mal im Ernst: schon mal was von Parametern gehört, die übergeben werden? Ich stell mir das etwa so vor:

getStringWidth($String, $Font, $Size)

Nochmal was anderes: Wenn bei ner Schriftart die Größe z.B. 8px angegeben ist, was bedeutet es dann?
Etwa das jedes Zeichen maximal 8px breit und hoch sein darf oder wie ist die Angabe zu verstehen?
nowayout ist offline  
Alt 30.04.2009, 19:36  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Jenachdem wofür du das brauchst (Diese Information wäre sehr hilfreich) kommst du damit vielleicht in eine richtige Richtung:

Wenn du bei der schriftgröße mit points (gd2) anstatt px leben kannst (notfalls umrechnen ?)
PHP: imagettfbbox - Manual
Erfordert allerdings dass die Schrift als ttf vorliegt.

Für den praktischen Einsatz kommen einem da dann halt immer noch Faktoren wie Zeichenabstand und so dazwischen ...
robo47 ist offline  
Alt 30.04.2009, 19:40  
Benutzer
 
Benutzerbild von Shouted
 
Registriert seit: 16.04.2009
Beiträge: 40
Shouted befindet sich auf einem aufstrebenden Ast
Shouted eine Nachricht über ICQ schicken Shouted eine Nachricht über MSN schicken Shouted eine Nachricht über Skype™ schicken
Standard

Ich habe da gerade ein ähnliches Problem. Ich denke ich kann das ruhig hier kurz posten, damit ich keinen neuen Thread aufmachen muss.

Ich generiere ein Bild welches mit einem String beschrieben werden soll, in dem Fall einer E-Mailadresse. Jetzt möchte ich, dass das Bild genau so lang wird, dass die Adresse schön darauf passt. Hier mal mein Code dazu:

PHP-Code:
<?
function secure_mail($mail_address) {
    
    
// Variablen definieren
    
$img_source 'images/securemail/';
    
$img_name explode('@'$mail_address);
    
$img_name_front $img_name[0];
    
$img_name_ext $img_name_front '.png';
    
$img_source_direct $img_source $img_name_ext;
    
    if (
file_exists($img_source_direct)) {
        
// Secure Mail Image existiert bereits -> Ausgabe
        
$dimensions getimagesize($img_source_direct);
        
$dimensions_use $dimensions[3];
        echo 
'<a href=\'mailto:' $mail_address '\'><img src=\'' $img_source_direct '\' alt=\'Secure Mail\' ' $dimensions_use ' border=\'0\'></a>';
    }
    else {
        
// Secure Mail Image generiert
        
$length strlen($mail_address);
        
$length_use $length*13.4;
        
$img imagecreatetruecolor($length_use20);
        
$image_color_white imagecolorallocate($img255255255);
        
$image_color_black imagecolorallocate($img000);
        
imagefill($img00$image_color_white);
        
imagestring($img250$mail_address$image_color_black);
        
imagepng($img$img_name_ext);
        
// Secure Mail Image nach Zielordner kopieren -> Original löschen
        
if (copy($img_name_ext$img_source_direct)) {
            
unlink($img_name_ext);
        } 
        echo 
'<a href=\'mailto:' $mail_address '\'><img src=\'' $img_source_direct '\' alt=\'Secure Mail\' width=\'150\' height=\'20\' border=\'0\'></a>';
    }
}
?>
Ich dachte ich kann die Länge des zu generierenden Bildes einigermassen hinkriegen, indem ich die Anzahl Zeichen mit einem fixen Wert multipliziere und diesen Wert dann als Breite des Bildes verwende. Jedoch funktioniert dies nicht so sauber wie ich mir das wünschen würde.

Grüsse

Geändert von Shouted (30.04.2009 um 19:44 Uhr).
Shouted ist offline  
Alt 30.04.2009, 19:43  
Benutzer
 
Benutzerbild von Shouted
 
Registriert seit: 16.04.2009
Beiträge: 40
Shouted befindet sich auf einem aufstrebenden Ast
Shouted eine Nachricht über ICQ schicken Shouted eine Nachricht über MSN schicken Shouted eine Nachricht über Skype™ schicken
Standard

Sorry Doppelpost, bitte löschen.
Shouted ist offline  
Alt 30.04.2009, 19:55  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Zitat:
Zitat von Shouted Beitrag anzeigen
Ich dachte ich kann die Länge des zu generierenden Bildes einigermassen hinkriegen, indem ich die Anzahl Zeichen mit einem fixen Wert multipliziere und diesen Wert dann als Breite des Bildes verwende. Jedoch funktioniert dies nicht so sauber wie ich mir das wünschen würde.

Grüsse
Gerade das dürfte ja mit dem Befehl den ich gepostet habe direkt klappen.
robo47 ist offline  
Alt 30.04.2009, 19:56  
Neuer Benutzer
 
Benutzerbild von nowayout
 
Registriert seit: 27.04.2009
Beiträge: 10
nowayout befindet sich auf einem aufstrebenden Ast
Standard

Bei mir gehts auch in eine ähnliche Richtung. Ich habe grafische Elemente variabler Breite, die eine Bezeichnung tragen. Diese Bezeichnung soll zentriert im Element dargestellt und bei Überlänge entsprechend mit Umbrüchen versehen werden. Daher ist die Funktion schon ganz gut dafür. Schade, dass es keine eigene Bibliothek für die Schriftarten hat.

Geändert von nowayout (30.04.2009 um 20:01 Uhr).
nowayout ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] breite beschränken HTML, Usability und Barrierefreiheit 4 19.08.2006 16:36
TAB innerhlab eines Strings. GELight PHP Tipps 2006 8 10.07.2006 21:16
[CSS] Verschachtelte Div Container - Breite anpassen I-Spy HTML, Usability und Barrierefreiheit 7 14.05.2006 11:51
Thumbnail proportional mit Max. Breite u. Höhe .fox PHP Tipps 2006 3 25.03.2006 07:03
Problem mit DIV-Box Breite php_frage HTML, Usability und Barrierefreiheit 4 18.03.2006 09:30
[PHP] "String" breite in Pixeln herausfinden I-Spy PHP Tipps 2006 9 08.03.2006 21:43
Breite eines Strings in pixeln ? Cyberbob_at_tot PHP-Fortgeschrittene 16 31.01.2006 11:04
doppelte Werte / Strings einer Spalte nur einmal ausgeben... Datenbanken 2 29.07.2005 12:10
neue Seite mit X breite und min höhe + druckbefehl HTML, Usability und Barrierefreiheit 15 11.05.2005 13:34
alle Positionen eines Strings innerhalb eines Strings finden PHP Tipps 2005 8 23.02.2005 20:21
strings sortieren aircrash PHP Tipps 2004-2 5 23.12.2004 16:57
image in tabelle mit 100% breite anzeigen? Promaetheus HTML, Usability und Barrierefreiheit 2 15.12.2004 20:05
IE: Breite = width + 0; FF: Breite = width + padding -- Häh? tapferesschneiderlein HTML, Usability und Barrierefreiheit 1 09.12.2004 18:45
metrische länge eines strings Sclot PHP-Fortgeschrittene 3 08.12.2004 13:54
[Erledigt] Strings saeubern PHP Tipps 2004 2 12.10.2004 15:52

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php breite eines strings, php länge string pixel, php briete eines strings, php länge eines wortes in pixel, länge in pixel, breite eines zeichens in php, php länge eines strings in pixeln, php font size abhängig von anzahl buchstaben, php string größe pixel, länge eines strings in pixel php, php länge eines textes in pixel, php breite des strings, php stringlänge zu px, php länge eines strings in pixel, php string pixel arial, php font breite in pixel, breite einer zeichenkette in pixel, http://www.php.de/php-tipps-2009/54674-breite-eines-strings-pixeln.html, php länge einer zeichenkette in pixel, länge von strings in pixel php

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:42 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum