Archiv für die Kategorie „php“

Nicht-webfähige Schriften darstellen

Freitag, 25. April 2008

Sicherlich kommt es Ihnen bekannt vor: Das Layout des Designer ist absolut treffend, aber bei der Umsetzung der Seite gibt es massive Unterschiede in den Schriften.

Der Webbrowser kann immer nur Schriften darstellen, die auf dem eigenen System installiert sind. Da es allerdings bei allen Systemen unterschiedliche Schriften gibt, greift der Browser auf eine Alternative zurück, bzw. die Webseiten werden direkt mit websicheren Schriften erstellt.

Durch das dynamische Erstellen von Schriften, in Form von Bildern, können Sie Ihr Design absolut perfekt im Internet nachbilden. Es werden außerdem mehrsprachige Inhalte unterstützt. Der einzige Nachteil, die Erstellung benötigt eine höhere Rechenleistung als eigentlicher Text (Es kann durch ein intelligentes temporäres Auslagern verhindert werden). Was allerdings bleibt, ist ein höheres Datenaufkommen, durch Bandbreiten ab 1 MBit ist das allerdings zu vernachlässigen. Zumal die Bilder auf die eigene Festplatte ausgelagert werden.

Ich stelle Ihnen heute ein Skript vor, welches direkt und einfach als Bild eingebunden werden kann, aber alle Schriftarten darstellen kann. Es handelt sich um eine Implementierung unter Verwendung von IMagick aus den PHP Bibliotheken.

Die Einbindung erfolgt folgendermaßen:

  1. <img src="/examples/fonty.php?t=Beispiel" alt="Beispiel" />

Als Resultat erhalten wir folgende Ausgabe:
Beispiel

Ich habe für das Beispiel die Schriftart Visitor verwendet. Als weitere Optionen können noch die Vordergrundfarbe, die Hintergrundfarbe und die Schriftgröße übergeben werden.

Als Beispiel für eine Größe von 20pt mit blauem Hintergrund und weißer Schriftfarbe:

  1. <img src="/examples/fonty.php?t=Beispiel&amp;c=ffffff&amp;b=0066CC&amp;s=20" alt="Beispiel" />

Als Ausgabe erhalten wir folgendes Bild:
Beispiel

Natürlich ist das Skript erweiterbar z.B. durch das Verwenden von mehreren Schriftdateien, oder durch das Benutzen von Verläufen und eben alles was grafisch möglich ist. Die Standardwerte können angepasst werden, um es an persönliche Vorstellungen anzugleichen. Folgende optionale Werte können belegt werden:

  1. /* configuration */
  2. /* allowed referer - else, everyone can generate images over your server */
  3. $referer = array( "localhost", "127.0.0.1", "pyades.com", "devqt.com", "imagy.com" );
  4. /* default string */
  5. $string = "pyades technologies gmbh";
  6. /* max string len */
  7. $maxStringLen = 24;
  8. /* default font point size */
  9. $size = 12;
  10. /* maximal font point size possible */
  11. /* note: a size like 1000pt can slow down or even break the server */
  12. $maxSize = 20;
  13. /* default font color */
  14. $color = "#000000";
  15. /* default background color */
  16. $background = "transparent";
  17. /* image comment */
  18. $comment = "imagy.com by Pyades Technologies GmbH";
  19. /* the font for writing */
  20. $font = "visitor.ttf";
  21. /* type of image - also possible, whatever Imagick can use */
  22. $imageType = "png";

Durch das Nutzen von $referer haben Sie die Möglichkeit, die Bildausgabe auf bestimmte Hosts zu begrenzen, damit Ihr Server nicht unnötig belastet wird, falls es sich ein anderer zu eigen macht. In einer späteren Anpassung wird eine weitere Sicherung in Form der IP-Adresse oder sogar in Form von Cookies denkbar sein. Ich halte Sie natürlich wie immer auf dem Laufenden.

Download: /examples/fonty-0.1.zip (10,6 KB)

Sollten Sie eine Abwandlung benötigen, oder möchten Sie es in Ihre Webseite integriert haben? Dann sprechen Sie mit mir, wir werden unter Garantie eine Lösung finden. Haben Sie weitere Fragen? Dann rufen Sie mich doch an, oder schreiben Sie mir einfach eine eMail.

Florian Becker

Pyades Technologies GmbH
Römerstr. 4 L
55232 Alzey

Tel: +49 (0) 67 31.998 78 66
Mob: +49 (0) 163.680 35 64
Fax: +49 (0) 67 31.998 78 67

Webseite: www.pyades.com

Amtsgericht: Mainz HRB 41299
Geschäftsführer: Florian Becker

PHP MimeMail mit eingebetteten Bildern versenden

Mittwoch, 9. April 2008

In geschäftlichen Signaturen werden gerne Firmenlogos oder sogar das persönliche Foto mitversandt. Oft findet man das Bild dann im Anhang und nicht innerhalb des Textes, aber als weitaus wichtigere Anwendungsmöglichkeit, kann die MimeMail Klasse in einem Newsletter System eingebunden werden. Für die Bearbeitung steht dann ein Feld, für eine Textnachricht, und eines für eine HTML-Nachricht zur Verfügung. Als letztes werden alle nötigen Bilder entsprechend eingebettet. Dazu ist es abschließend noch möglich, wirkliche Anhänge der eMail anzufügen und dann an beliebig viele Empfänger zu versenden.

Folgende Vorteile bietet die PHP MimeMail Klasse:

  • Versenden einer textbasierten eMail
  • Versenden einer HTML-basierten eMail
  • Einbetten von Bildern
  • Weitere sonstige Anhänge
  • Alle diese Funktionen auch kombiniert
  • Kopfinformationen können manipuliert bzw. ergänzt werden
  • Priorität einer eMail setzen

Die wohl größten Vorteile bestehen darin, dass ein nicht HTML-fähiger MailClient nur die Textvariante anzeigt, dass in HTML-eMails alle Dateien eingebettet sind und nicht extern von einem evtl. blockierten Server nachgeladen werden müssen. Mit den gängigsten eMail-Programmen wurde das Script getestet, unter anderem Mozilla Thunderbird, Opera Mail, Microsoft Outlook, Microsoft Mail, KMail, Mac Mail.

Hier möchte ich Ihnen noch zeigen, wie einfach eine Implementierung ist. Bereits wenige Zeilen Quelltext reichen aus, um die Klasse zu verwenden:

  1. /* neue MimeMail erstellen */
  2. $mime = new MimeMail();
  3. /* Absender der eMail setzen */
  4. $mime -> setSender( "$name <$email>" );
  5. /* Empfänger der eMail setzen */
  6. $mime -> setRecipient( "$name <$email>" );
  7. /* Betreff setzen */
  8. $mime -> setSubject( $subject );
  9. /* Evtl. noch einen neuen Header hinzufügen */
  10. $mime -> addHeader( "Organization", "Pyades Technologies GmbH" );
  11. /* Priorität der eMail setzen */
  12. $mime -> setPriority( "3" );
  13. /* HTML-Bereich setzen */
  14. $mime -> setHtml( $html );
  15. /* eingebettete Dateien hinzufügen - durch die <img src="cid:file1@pyades.com"/> werden die korrekten Bilder zugewiesen - die IDs sind fortlaufend */
  16. $mime -> addEmbeddedAttachement( $file, $mimetype );
  17. /* Einfachen Textbereich setzen */
  18. $mime -> setPlain( $plain );
  19. /* weitere Attachments hinzufügen */
  20. $mime -> addAttachment( $file, $mimetype );
  21. /* Die eMail verschicken */
  22. $mime -> sendMimeMail();

Außerdem finden Sie eine genauere Beschreibung der Funktionen in der Datei.

Download: /examples/mimemail.zip (2 KB)

Bei Fragen zu einem Newslettersystem oder zu der beschriebenen Klasse freue ich mich über Ihren Anruf und natürlich auch Ihre eMail.

Florian Becker

Pyades Technologies GmbH
Römerstr. 4 L
55232 Alzey

Tel: +49 (0) 67 31.998 78 66
Mob: +49 (0) 163.680 35 64
Fax: +49 (0) 67 31.998 78 67

Webseite: www.pyades.com

Amtsgericht: Mainz HRB 41299
Geschäftsführer: Florian Becker