繁体   English   中英

安装GD后imageantialias调用未定义函数错误

[英]imageantialias call to undefined function error with GD installed

我需要有关PHP脚本的帮助。 这是已实施到网站中的CMS。 尝试添加新产品IMAGE或尝试编辑当前图像时,出现以下错误:

致命错误:在第233行的/home/mounts/home/m/mclh/web/admin/library/functions.php中调用未定义的函数imageantialias()

这是我在那方面的代码:

   if ($tmpDest['extension'] == "gif" || $tmpDest['extension'] == "jpg")
    {
       $destFile  = substr_replace($destFile, 'jpg', -3);
       $dest      = imagecreatetruecolor($w, $h);
       imageantialias($dest, TRUE);
    } elseif ($tmpDest['extension'] == "png") {
       $dest = imagecreatetruecolor($w, $h);
       imageantialias($dest, TRUE);
    } else {
      return false;
    }

233行是第五行。

更新 :看来功能imageantialias()如果PHP编译GD,所以它是不够的,必须通过扩展文件包括扩展才可用。

PHP手册

注意:仅当PHP与GD库的捆绑版本一起编译时,此功能才可用。

请检查您的phpinfo() ,看看是否在其中找到了--with-gd=shared标志(或类似的标志,也许只是--with-gd )。 如果找不到它,则必须使用此标志重新编译您的PHP。

详细信息:可以通过php.ini通过包含.dll(Windows)或.so(Unix)文件来加载PHP扩展,也可以使用PHP对其进行编译。 编译听起来很吓人,但实际上确实很容易。 您需要做的(Unix)是:

  1. 复制您的phpinfo()中显示的编译字符串
  2. 添加所需的新标志
    • ./configure ... phpinfo中的所有内容以及新标记
    • 弄干净
    • 使
    • 进行安装
  3. 看看你的phpinfo()和微笑:)

第一个答案(未证明是正确的):

imageantialias()PHP GD扩展的功能 GD是否已安装并正确配置?

从您的代码看来,GD已安装,因为imagecreatetruecolor()也是GD函数,并且似乎可以正常工作。 得出的结论是您使用的是PHP 4.3.2之前的版本,该版本不支持imageantialias()

请查看您的phpinfo()以查看我的结论是否正确。 在那里,您将看到正在使用的PHP版本,并且还将看到GD是否已安装并正常工作!

这是您问题的解决方法,只需下载rpm,从此处解压缩gd-bundled.so,然后将其替换为原始gd.so。

出于安全考虑,Debian / Ubuntu PHP似乎没有将GD库与其捆绑在一起。 您必须重新编译PHP,并遵循有关Debian / Ubuntu的逐步帮助指南: http : //www.maxiwebs.co.uk/gd-bundled/compilation.php

打开一个终端。 通过键入su成为root用户,并在出现提示时输入您的root密码。

下载一些安装所需的软件包。 输入apt-get install build-essential debhelper fakeroot dpkg-dev mysql-server。 当MySQL安装程序要求输入root密码时,请考虑一个密码,然后确保密码安全。 将当前目录更改为源目录。 cd / usr / src。

通过键入apt-get source php5下载PHP 5源代码。 我们还需要PHP 5依赖项。 要下载这些文件,请输入apt-get build-dep php5。

进入下载的PHP目录。 cd php5-XXXX。 键入php5-后,只需按即可完成文件夹名称。

现在,我们需要编辑一个配置文件,以将其更改为GD的捆绑版本。 输入nano debian / rules。

找到显示--with-gd = shared,/ usr --enable-gd-native-ttf \\的行,并通过删除,/将其更改为--with-gd = shared --enable-gd-native-ttf \\ usr。 (按ctrl + w可以找到某些内容,如果您搜索gd,它就在第二次出现附近)。 要保存文件,我们需要按ctrl + x,然后按y,然后输入。

现在我们需要编辑MySQL设置文件。 键入nano debian / setup-mysql.sh。 注意:如果此文件不存在,请放心,您可以跳过步骤10和11。

找到$ mysqld> $ datadir / run.log 2>&1&行,然后将--user = root添加到$ mysqld --user = root> $ datadir / run.log 2>&1&行。 要保存文件,我们需要按ctrl + x,然后按y,然后输入。

现在我们完成设置,现在需要对其进行编译。 输入dpkg-buildpackage -rfakeroot,或者,如果您使用的是Ubuntu 11.10,则应输入dpkg-buildpackage -d,这将需要一些时间。

完成后,您应在父目录中加载.deb文件。 找到以php5-gd开头的一个。

双击安装它,或在终端上键入dpkg -i php5-gdXXXXXXX,只需在键入php5-gd完成文件名后按即可。

现在,我们需要通过拿着软件包来停止将常规的非捆绑版本替换为闪亮的新GD库的更新。 运行以下命令:apt-get install wajig。 对安装说是。

安装后,输入以下内容:wajig hold php5-gd。

恭喜你! 现在,您已经安装了GD Library的捆绑版本,现在就开始吧!

根据PHP手册的PHP版本7.2.0的变更日志

imageantialias()现在普遍可用。 以前,仅当PHP是使用GD库的捆绑版本编译的时才可用。

因此,有一些解决方案。

此功能是GD库的一部分。 该库可能未安装在您的PHP环境中。

可以在以下位置找到有关如何包含GD的详细信息: http : //www.php.net/manual/en/image.installation.php

这意味着您拼写了imageantialias()函数错误,或者您尚未在代码中定义该函数,或者该函数所属的第三方代码未包含在当前文档中。

更新:已安装GD。 这是一个谜。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM