<?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."")
?>
我正在使用这个PHP代码制作一个facebook应用程序。我将字体Arial.ttf
上传到我网站的根目录。但我仍然在显示错误 - Warning: imagettftext() [function.imagettftext]: Could not find/open font in /home/a2424901/public_html/index.php on line 35
。我尝试改变案例,但我没有为我工作。我在这段代码中出错了什么?
答案 0 :(得分:32)
根据PHP使用的GD库版本,当fontfile不以前导/开头时,然后.ttf将附加到文件名,库将尝试沿库定义的字体路径搜索该文件名
这似乎意味着fontfile应该是一个绝对路径,如果不是,该函数会将另一个.ttf
附加到它的末尾。
指定字体文件的完整路径。
$font = "/home/a2424901/public_html/Arial.ttf";
或省略.ttf
并使用GDFONTPATH
。 The documentation建议如下:
在许多情况下,字体与使用它的脚本位于同一目录中,以下技巧将缓解任何包含问题。
putenv('GDFONTPATH=' . realpath('.'));
$font = "Arial";
答案 1 :(得分:9)
添加到user2724960的答案;
将FontName更改为__DIR__ . '/graph/fonts/someFont.ttf'
为我做了。
全线:
$myPicture->setFontProperties(array("FontName"=>__DIR__ . '/graph/fonts/someFont.ttf',"FontSize"=>14));
不要忘记将“ someFont ”替换为您的字体文件名称(默认值为“Forgotte”)
答案 2 :(得分:1)
我的解决方案(对我有用)
realpath('here/is/right/path/to/font.ttf');
答案 3 :(得分:0)
如果你正在使用pChart,请使用:
$myPicture->setFontProperties(array("FontName"=>"../fonts/Forgotte.ttf","FontSize"=>11));
答案 4 :(得分:0)
我有同样的问题。我的字体名称是
Titr.TTF
我将其改为
Titr.ttf
它完美无缺。
答案 5 :(得分:0)
它为我工作: 使用绝对路径
$font = 'C:\wamp\www\Persian-txt2img\Vazir-Code.ttf';
$font = mb_convert_encoding($font, 'big5', 'utf-8');
// Add the text
imagettftext($image, 24, 0, 64, 48, $text_color, $font, $text);
答案 6 :(得分:0)
在GoDaddy(共享托管,Cpanel)上,我必须仅在域的之后指定路径:
我的文件在这里:
URL: http://example.com/assets/fonts/verdana/verdana.ttf
path: /home/content/123456/html/example/assets/fonts/verdana/verdana.ttf
有效的PHP代码:
$font = 'assets/fonts/verdana/verdana.ttf';
为该路径使用其他值无效。
答案 7 :(得分:0)
在使用localhost(XAMPP)时遇到了相同的问题。
我的解决方法是:
// Set Correct Path to Font File
$fontPath='C:\xampp\htdocs\Adeplay\fonts\Tesox\tesox.ttf';
答案 8 :(得分:0)
我也在XAMPP上,显然XAMPP仅支持字体的完整目录路径。此代码可在Windows(XAMPP)和我们的提供商Linux服务器上使用:
$dir= dirname(realpath(__FILE__));
$sep=DIRECTORY_SEPARATOR;
$font =$dir.$sep.'arial.ttf';
imagettftext($thumb, $size, 0, $y_pos, $size, $textcolor, $font, $txt);
(假设您的字体文件与php文件位于同一目录中)
答案 9 :(得分:-6)
请检查参考资料下的字体文件夹。