Natalie van Breem: Font einbinden

Liebes Forumteam, liebe Forumleser,

nachdem ich mich auf der Suche nach einer Lösung für mein Problem stundenlang erfolglos durch div. Foren etc. gequält habe, ohne eine Lösung zu finden, hoffe ich auf Euch.

Vorab: Ich programmiere nur ab und zu - Ihr könnt bei der Beschreibung der Lösung sozusag. nur Anfängerkenntnisse voraussetzen.

Das Problem:
Ich möchte in mein php-Script einen Font einbinden (z.B. arial.ttf - habe ich zumindest auf den Server geladen).
Ursprünglich wollte ich das über das Anlegen einer Envirement-Variablen machen mit folgendem Ergebnis:
Warning: putenv() [function.putenv]: Safe Mode warning: Cannot set environment variable 'GDFONTPATH' - it's not in the allowed...

  • ok.
    Auf Nachfragen beim Serverbetreiber erhielt ich folgende Info:
    "Da ein deaktivierter safe-mode ein großes Sicherheitsrisiko für alle Kunden bedeuten würde, ist der der php safe-mode aktiviert (eingeschaltet) und kann nicht für einzelne Kunden deaktiviert werden. Durch den Safe-Mode sind nur Pfadangaben inerhalb eines Accounts zulässig. Dies bedeute für Sie das Sie immer den kompletten Serverpfade zu dem anzusteuernden Verzeichnis angeben müssen."

Gut. Oder auch nicht. Jedenfalls habe ich daraufhin verschiedenste Varianten ausprobiert - immer ohne Erfolg. Mein letzter Versuch z.B.:
$font = imageloadfont('arial.ttf') brachte auch nur folgende Fehlermeldung: "Warning: imageloadfont() [function.imageloadfont]: Error reading font in /home/www/XXXX/html/Unterverzeichnis/XXXXXX.php on line 54" - übrigens auch bei vollständiger (absoluter) Pfadangabe.

Ich hoffe, Euch mein Problem klar genug dargestellt zu haben.
Und: Ich hoffe auf Euch.

Viele Grüße
Natalie

  1. Hallo.

    Ich würde sagen du lässt das mit dem Font. Keine gute Idee ausserdem ist Arial doch auf fast jedem Rechner vorhanden.

    mfg
    Phil Z.

    1. Ehrlich gesagt - unter Problemlösung stelle ich mir anders vor ;-)

      LG Tali

    2. Hallo,

      Ihr gehts wohl eher darum,allgemein beliebige Schriftarten einzufügen,Arial.ttf war nur ein Bsp. .

      gruß aus Hosena

  2. hi,

    Mein letzter Versuch z.B.:
    $font = imageloadfont('arial.ttf') brachte auch nur folgende Fehlermeldung: "Warning: imageloadfont() [function.imageloadfont]: Error reading font in [...]

    imageloadfont lädt Bitmap-Fonts.
    TTF sind keine Bitmap-Fonts.

    Du möchtest imagettftext verwenden.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. hi,

      Mein letzter Versuch z.B.:
      $font = imageloadfont('arial.ttf') brachte auch nur folgende Fehlermeldung: "Warning: imageloadfont() [function.imageloadfont]: Error reading font in [...]

      imageloadfont lädt Bitmap-Fonts.
      TTF sind keine Bitmap-Fonts.

      ok. Danke. Habs verstanden.

      Du möchtest imagettftext verwenden.

      "Möchte?" - Na, wenn's nur so geht - muss wohl.
      Gesagt -getan:
      ---
      ImageTTFText($im, $text_size, 0, $text_x, $text_y,
          $text_color, $font, $text);

      ... mit Angabe des absoluten Pfades zur Datei z.B. arial.ttf
      ---

      führt zwar zu keiner Fehlermeldg. (das erzeugte Bild [Statistik-Balken] erscheint korrekt) - alles aber ohne Text.

      LG
      Tali

      1. Ergänzung (habs gerade erst bemerkt):

        ... mit Angabe des absoluten Pfades zur Datei z.B. arial.ttf

        --> die Angabe erfolgte so: $font = '/home/.../.../arial.ttf';

        LG
        Tali

      2. hi,

        ImageTTFText($im, $text_size, 0, $text_x, $text_y,
            $text_color, $font, $text);

        führt zwar zu keiner Fehlermeldg. (das erzeugte Bild [Statistik-Balken] erscheint korrekt) - alles aber ohne Text.

        Dann überprüfe die übrigen Parameter auf Plausibilität.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. hi,

          ImageTTFText($im, $text_size, 0, $text_x, $text_y,
              $text_color, $font, $text);

          führt zwar zu keiner Fehlermeldg. (das erzeugte Bild [Statistik-Balken] erscheint korrekt) - alles aber ohne Text.

          Dann überprüfe die übrigen Parameter auf Plausibilität.

          da dürfte es null Problemo geben - habe zuvor alles auf dem lokalen Rechner getestet (halt mit anderer Technik:
          putenv('GDFONTPATH=c:\WINDOWS\Fonts');
          --> Da klappte alles wunderbar.
          Da dies auf dem Hostserver so nicht möglich ist, hatte ich es eben  -wie zuvor beschrieben - ausprobiert.
          Also, wie gesagt. Der Rest müsste plausibel sein.
          Keine Ahnung, woran es noch liegen könnte.

          LG Tali

          1. hi,

            putenv('GDFONTPATH=c:\WINDOWS\Fonts');
            --> Da klappte alles wunderbar.
            Da dies auf dem Hostserver so nicht möglich ist, hatte ich es eben  -wie zuvor beschrieben - ausprobiert.

            Probier mal, den Parameter für die Font-Datei mit realpath() anzugeben.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. hi,

              putenv('GDFONTPATH=c:\WINDOWS\Fonts');
              --> Da klappte alles wunderbar.
              Da dies auf dem Hostserver so nicht möglich ist, hatte ich es eben  -wie zuvor beschrieben - ausprobiert.

              Probier mal, den Parameter für die Font-Datei mit realpath() anzugeben.

              Hab ich so mal probiert:
              $font = realpath('/home/www/XXX/html/XXXX/arial.ttf');
              mal so:
              $font = realpath('/home/www/XXX/html/XXXX/arial');
              mal so:
              $font = realpath('arial.ttf');
              etc.
              --> jeweils keine Fehlermeldg., aber auch kein Text :-(.

              1. Hallo Natalie,

                --> jeweils keine Fehlermeldung., aber auch kein Text :-(.

                Versuch doch mal bitte heraus zu finden, ob die PHP In-
                stallation auf dem Server ueberhaupt ttf verarbeiten kann.
                Unter Zuhilfenahme von phpinfo(), such bitte
                mal nach: --with-ttf-dir=/usr/lib \.

                Wenn es vorhanden ist, dann wurde PHP mit der Fasehigkeit
                kompiliert, TrueType Schriften lesen zu koennen.
                Wenn nicht, bleibt es so wie es ist :-(

                gruesse aus'm ruhrpott
                  jens mueller

                --
                As long as a single mind remembers, as long as a single heart
                beats with passion, how can a dream die?
                \//_ Live long and prosper
                sh:( fo:) ch:| rl:° br:^ n4:| ie:% mo:| va:} de:> zu:) fl:( ss:) ls:> js:|
                1. Hallo Natalie,

                  --> jeweils keine Fehlermeldung., aber auch kein Text :-(.

                  Versuch doch mal bitte heraus zu finden, ob die PHP In-
                  stallation auf dem Server ueberhaupt ttf verarbeiten kann.
                  Unter Zuhilfenahme von phpinfo(), such bitte
                  mal nach: --with-ttf-dir=/usr/lib \.

                  Hallo Jens,

                  exakt in dieser Reihenfolge habe ich keinen Eintrag gefunden. Aber u.a.
                  ...... --enable-gd-imgstrttf' '--with-tiff-dir=/usr' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--with-xpm-dir=/usr/X11R6' '--with-zlib=yes' '--with-bz2' '--with-gmp' '--with-xml' '--with-dom' '--with-ttf' '--with-t1lib' '--with-mcal=/usr' ......

                  Wenn es vorhanden ist, dann wurde PHP mit der Fasehigkeit
                  kompiliert, TrueType Schriften lesen zu koennen.

                  Dürfte also eigentlich kein Problem sein, TrueType zu lesen.

                  Wenn nicht, bleibt es so wie es ist :-(

                  Na, will ich nicht hoffen - irgendwie muss das Ding doch zu knacken sein.

                  LG an alle da draussen - auch in den Ruhrpott ;-)

                  1. Guten Abend Natalie,

                    mal nach: --with-ttf-dir=/usr/lib \.
                    '--with-ttf'

                    Ist vorhanden. Das  sagt dir=/usr/lib PHP nur, wo es
                    zuerst nach Schriften suchen soll.
                    Das bedeutet aber nicht, dass nur dieses Verzeichnis ver-
                    wendet werden kann.

                    Na, will ich nicht hoffen - irgendwie muss das Ding doch
                    zu knacken sein.

                    Genau.
                    Es gibt eine Reihe von moeglichen Fehlerquellen, versuchen
                    wir mal diese der Reihe nach auszuschliessen.
                    Vorschlag 1) setzt bitte einmal die Fehlerberichterstattung,
                    im Script auf alles wat geht. error_reporting(E_ALL);
                    Ich habe so den Verdacht, dass es noch eine Fehlermeldung
                    gibt, diese aber durch die Konfiguration unterbunden wird.

                    Wenn dir eine Meldung ueber den Weg laeuft, bitte hier ins
                    Forum schreiben.

                    Vorschlag 2) ueberpruefe bitte einmal, ob du die Schrift-
                    datei, als Binaer auf den Server uebertragen hast.

                    LG an alle da draussen - auch in den Ruhrpott ;-)

                    Sooo schlimm sind wir im Pott auch nich. Wir haben den
                    Ruf, dass wir aller herzliche Menschen sind. :-)

                    gruesse aus'm ruhrpott
                      jens mueller

                    --
                    As long as a single mind remembers, as long as a single heart
                    beats with passion, how can a dream die?
                    \//_ Live long and prosper
                    sh:( fo:) ch:| rl:° br:^ n4:| ie:% mo:| va:} de:> zu:) fl:( ss:) ls:> js:|
                    1. Hallo Jens,

                      so negativ war das eigentlich nicht gemeint - das mit dem Ruhrpott;-).
                      Ok. Sorry, dass ich erst jetzt antworte und vielen Dank für Deine Unterstützung.
                      Vorschlag 1 werde ich demnächst mal probieren.
                      Vorschlag 2 ist erl.--> war binär übertragen worden.

                      Mangels schneller Lösung hab ich es nun erst mal ohne TrueType
                      Font (mit imagestring) erledigt - so klappte es zumindest.
                      Doch gleich stellte sich ein anderes Problem ein:
                      ich wollte das per PHP-generierte Bild in eine bestehende Html-Datei einbinden per <img src="auswerten.php" alt="Testergebnis" /> .
                      Tja, was soll ich sagen:
                      Das Bild wird generiert, aber offenbar werden jeweils nur die bestehenden Datenbankinhalte herausgelesen - neue Einträge werden nicht vorgenommen :-(.
                      Jetzt is aber gut....

                      LG Tali

                      Na, will ich nicht hoffen - irgendwie muss das Ding doch
                      zu knacken sein.

                      Genau.
                      Es gibt eine Reihe von moeglichen Fehlerquellen, versuchen
                      wir mal diese der Reihe nach auszuschliessen.
                      Vorschlag 1) setzt bitte einmal die Fehlerberichterstattung,
                      im Script auf alles wat geht. error_reporting(E_ALL);
                      Ich habe so den Verdacht, dass es noch eine Fehlermeldung
                      gibt, diese aber durch die Konfiguration unterbunden wird.

                      Wenn dir eine Meldung ueber den Weg laeuft, bitte hier ins
                      Forum schreiben.

                      Vorschlag 2) ueberpruefe bitte einmal, ob du die Schrift-
                      datei, als Binaer auf den Server uebertragen hast.

                      LG an alle da draussen - auch in den Ruhrpott ;-)

                      Sooo schlimm sind wir im Pott auch nich. Wir haben den
                      Ruf, dass wir aller herzliche Menschen sind. :-)

                      gruesse aus'm ruhrpott
                        jens mueller