【问题标题】:TCPDF errors on PHP 7PHP 7 上的 TCPDF 错误
【发布时间】:2019-01-05 05:28:39
【问题描述】:

我正在使用 TCPDF 插件在 PHP 7 中生成 PDF。相同的代码在较低版本的 PHP 5 中运行良好,但是当我在 PHP 7 中运行相同的代码时,它给出了以下错误消息。

A PHP Error was encountered
Severity: 8192

Message: The each() function is deprecated. This message will be suppressed on further calls

Filename: tcpdf/tcpdf.php

Line Number: 16542

【问题讨论】:

标签: php tcpdf php-7.2


【解决方案1】:

在文件中编辑:\FPDI\fpdi.php 第 567 行:

//while (list($k, $v) = each($value[1])) {

在代码中: foreach ($value[1] AS $k => $v) {

并在文件中编辑:\tcpdf\tcpdf.php 第 16543 行:

//while (list($id, $name) = each($attr_array[1])) {

在代码中: foreach($attr_array[1] as $id => $name) {

【讨论】:

  • 这就是诀窍!使用 tecnickcom/tcpdf 版本 6.2.26 的 tcpdf.php 中有 3 个位置
【解决方案2】:

发现此问题的任何人请注意...最新版本的 TCPDF 已修复此问题...因此,如果您只是进行更新,应该没问题:https://github.com/tecnickcom/TCPDF

【讨论】:

    【解决方案3】:

    根据php:

    自 PHP 7.2.0 起,该函数已被弃用。以此为依托 强烈建议不要使用函数。

    http://php.net/manual/en/function.each.php

    我记得我还有一个“遗留”脚本。我没有修改它,而是关闭了折旧的错误警告(现在)。

    index.php

    switch (ENVIRONMENT) {
        case 'development':
            error_reporting(~E_DEPRECATED);
            ini_set('display_errors', 1);
            break;
        case 'testing':
        case 'production':
            ini_set('display_errors', 0);
            error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED);
            break;
        default:
            header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
            echo 'The application environment is not set correctly.';
            exit(1); // EXIT_ERROR
    }
    

    您可以更新库,因为我认为它仍在开发中,或者如果不是这种情况,您还可以修改代码,在需要时用适当的 foreach 循环替换每个代码:

    How to resolve this deprecated function each php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 2017-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多