web-dev-qa-db-fra.com

Avertissement: imagettftext () [function.imagettftext]: impossible de trouver/ouvrir la police dans /home/a2424901/public_html/index.php à la ligne 35

<?php
session_start();
require_once 'facebook.php';
$app_id = "418907881455014";
$app_secret = "36389d2c4caaf6de86982cb87686a494";
$redirect_uri = 'http://gooogle12.comuf.com';
$facebook = new Facebook(array(
        'appId' => $app_id,
        'secret' => $app_secret,
        'cookie' => true
));
$user = $facebook->getUser();
$user_profile = $facebook->api('/me');

$coded = $_REQUEST['code'];

$access_token = $facebook->getAccessToken();
$name = "".$user_profile['name']."";
$fbid = "".$user_profile['id']."";

function RandomLine($filename) {
    $lines = file($filename) ;
    return $lines[array_Rand($lines)] ;
}
$reason = RandomLine("reason.txt");  

$canvas = imagecreatefromjpeg ("bg.jpg");                                   // background image file
$black = imagecolorallocate( $canvas, 0, 0, 0 );                         // The second colour - to be used for the text
$font = "Arial.ttf";                                                         // Path to the font you are going to use
$fontsize = 20;                                                             // font size

$birthday = "".$user_profile['birthday']."";
$death = "- ".date('d/m/Y', strtotime( '+'.Rand(0, 10000).' days'))."";

imagettftext( $canvas, 22, -1, 110, 120, $black, $font, $name );            // name
imagettftext( $canvas, 22, -1, 110, 170, $black, $font, $birthday );        // birthday
imagettftext( $canvas, 22, -1, 255, 172, $black, $font, $death );           // death
imagettftext( $canvas, 20, -1, 110, 220, $black, $font, $reason );           // reason


$facebook->setFileUploadSupport(true);

//Create an album
$album_details = array(
        'message'=> 'How will you die?',
        'name'=> 'How will you die?'
);
$create_album = $facebook->api('/me/albums', 'post', $album_details);

//Get album ID of the album you've just created
$album_uid = $create_album['id'];

//Upload a photo to album of ID...

$file='img/'.$fbid.'.jpg'; //Example image file

$photo_details = array( 'message'=> 'Find...51', 'image' => '@'.realpath($file));
$upload_photo = $facebook->api('/'.$album_uid.'/photos', 'post', $photo_details);


    enter code here



ImageDestroy( $canvas );

header("Location: http://facebook.com".$fbid."&photoid=".$upphoto."")
?>

Eh bien, j'utilise ce code php pour créer une application facebook. J'ai téléchargé la police Arial.ttf dans le répertoire racine de mon site Web. Mais je montre toujours l'erreur Warning: imagettftext() [function.imagettftext]: Could not find/open font in /home/a2424901/public_html/index.php on line 35. J'ai essayé de changer l'affaire, mais je n'ai pas travaillé pour moi. Où je me suis trompé dans ce code?

12
Nishant Ghodke

À partir de la documentation

En fonction de la version de la bibliothèque Gd utilisée par PHP, lorsque le fichier font ne commence pas par un interligne /, le fichier .ttf sera ajouté au nom du fichier et la bibliothèque tentera de le rechercher dans une bibliothèque. chemin de police défini.

Cela semble impliquer que le fichier de police doit être un chemin absolu, et si ce n'est pas le cas, la fonction ajoutera un autre .ttf à la fin de celui-ci.

Spécifiez le chemin complet du fichier de police.

$font = "/home/a2424901/public_html/Arial.ttf";

Ou omettez le .ttf et utilisez la GDFONTPATH. La documentation recommande ce qui suit:

Dans de nombreux cas, lorsqu'une police réside dans le même répertoire que le script qui l'utilise, l'astuce suivante atténuera les problèmes d'inclusion.

putenv('GDFONTPATH=' . realpath('.'));
$font = "Arial";
31
Michael Berkowski

Pour ajouter à la réponse de user2724960: Changer le FontName en __DIR__ . '/graph/fonts/someFont.ttf' l'a fait pour moi.

Ligne complète: 

$myPicture->setFontProperties(array("FontName"=>__DIR__ .  '/graph/fonts/someFont.ttf',"FontSize"=>14));

N'oubliez pas de remplacer " someFont " par le nom de votre fichier de police (par défaut: "Forgotte")

8
Magictallguy

Ma solution (fonctionne pour moi):

realpath('here/is/right/path/to/font.ttf');
1
Świeżu

si vous utilisez pChart, utilisez ceci:

$myPicture->setFontProperties(array("FontName"=>"../fonts/Forgotte.ttf","FontSize"=>11));
0
Mahdian

J'ai eu le même problème. Mon nom de police était 

Titr.TTF

et je l'ai changé pour 

Titr.ttf

et sa a fonctionné parfaitement.

0
Metalife