1

メソッドを含むクラスは次のとおりです。

<?php
   class renderText {
      function text_to_image( $text, $width, $height, $image_file ) {
         $fonts_dir = 'path/to/directory/in/which/SreeKrushnadevaraya.ttf/is/located/';
         $ret = mb_language('uni');
         mb_internal_encoding('UTF-8');
         header('Content-type: image/gif');
         $font = $fonts_dir.'SreeKrushnadevaraya.ttf';
         error_log("=before imagecrttrucolour",3,'path/to/frontend_dev.log');
         $im = imagecreatetruecolor( $width, $height );
         error_log("=after imagecrttrucolour",3,'path/to/frontend_dev.log');
         $white = imagecolorallocate( $im, 255, 255, 255 );
         $black = imagecolorallocate( $im, 0, 0, 0 );
         imagefilledrectangle( $im, 0, 0, $width, $height, $white );
         imagettftext( $im, 10, 0,10 ,30, $black, $font, $text );
         $image_file = '/tmp/'.date('YmdHis').$width.$height.'.gif';
         imagegif( $im, $image_file );
         imagedestroy( $im );
         return $image_file;
      }
   }
?>

次のコードは、ローカル スクリプトと同様に symfony に追加されます。ローカルスクリプトでは問題なく動作しますが、symfony では失敗します:

// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('path/to/directory/in/which/SreeKrushnadevaraya.ttf/is/located/'));

// Name the font to be used (note the lack of the .ttf extension)
$font = 'SreeKrushnadevaraya';

メソッドは次のように呼び出されます。

$image_file = '/tmp/'.date('YmdHis').'260'.'x'.'32.gif';
 $rendered_text = renderText::text_to_image($this->getRequestParameter('caption_unicode'), 240, 32, $image_file);

PHP バージョン: PHP 5.3.6

symfony バージョン 1.0.22

4

1 に答える 1

0

おそらく2 つのバージョンの PHP がインストールされています。

  • Symfony 経由で実行するときに使用されるApache 拡張機能
  • スクリプトを実行するときに使用する PHP cli

また、各バージョンには独自のphp.ini構成ファイルがあります。拡張機能をロードしていないか、Apache 構成ファイルで誤って構成している可能性があります。

phpinfo() を実行すると、Apache php.ini 構成ファイルの場所を見つけることができます。(たとえば、Symfony ツールバーで)

于 2013-08-08T08:35:19.953 に答える