gpt4 book ai didi

php - 指定了非法的长度修饰符

转载 作者:行者123 更新时间:2023-12-04 09:59:20 27 4
gpt4 key购买 nike

当我在清除站点缓存后尝试加载几个不同的管理页面时,我的 Drupal 8 站点开始出现此错误。

Fatal error: Illegal length modifier specified 'f' in s[np]printf call in /public_html/mysite.com/core/lib/Drupal/Component/PhpStorage/MTimeProtectedFastFileStorage.php on line 88



有问题的代码行是以下代码段中的最后一行。
// Move the temporary file into the proper directory. Note that POSIX
// compliant systems as well as modern Windows perform the rename operation
// atomically, i.e. there is no point at which another process attempting to
// access the new path will find it missing.
$directory = $this->getContainingDirectoryFullPath($name);
$this->ensureDirectory($directory);
$full_path = $this->getFullPath($name, $directory, $mtime);
$result = rename($temporary_path, $full_path);

我记录了 php 重命名函数中使用的变量
$temporary_path = sites/default/files/php/twig/.Lmc1W8Ah3a0Ti25OSi6EWRhRrak
$full_path = sites/default/files/php/twig/5eb6d88f951ea_input.html.twig_BDyoxtSNo6EAtdqLkk7vWqrEZ/Y3dUT4hvb70S6IlToElkUoP3liser_VNlYRsxFliuEg.php

MTimeProtectedFastFileStorage.php 文件中的 rename() 函数是 Drupal 缓存系统的一部分。当站点缓存被清除时,Drupal 会根据需要在页面加载时重建这些 php Twig 缓存文件。

rename() 函数在页面加载崩溃之前成功地在正确的目录中创建了 $full_path Twig 文件,并显示 spprintf "Fatal error: Illegal length modifier specified 'f'"php_error 消息。 php_error 消息代码在第 741 行生成

https://github.com/php/php-src/blob/master/main/spprintf.c
fmt_error:
php_error(E_ERROR, "Illegal length modifier specified '%c' in s[np]printf call", *fmt);
/*
* The default case is for unrecognized %'s.
* We print %<char> to help the user identify what
* option is not understood.

我不确定在 rename() 文件更改过程中会在哪里调用 php spprintf 字符串格式化函数。经过一些测试,我认为这个问题与文件字符长度、非法字符或文件权限无关。

每次刷新页面时,都会在抛出 spprintf php_error 之前成功创建一个新的 twig 文件。在多次页面刷新后,php_error 问题将停止,其余的 twig 缓存文件将被创建而没有任何进一步的问题。

我不确定如何测试内部 php 错误,也不确定 spprintf.c 文件中的“指定的非法长度修饰符 'f'”指的是什么。对此事的任何见解将不胜感激。

最佳答案

我不确定问题出在哪里,但切换到 PHP 7.4 会使问题消失。我正在运行 PHP 7.4.8,并且不再遇到此问题。

关于php - 指定了非法的长度修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61861990/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com