通过函数调用时 SFTP Opendir 失败

SFTP Opendir failing when called via Function

我有一堆 php 页面按计划 运行 从不同的 SFTP 来源提取数据,为了尝试将其最小化作为临时修复,我将它们转化为功能和有一个页面调用它们中的每一个

然而,当将它们转换为函数时,页面给我错误 500,通过消除过程我发现它是通过 sftp

使用 opendir 函数时

我已经通过引用调用了函数页面本身作为测试,并且它连接正常,但是当从另一个页面调用时它出错了。

用于通过 sftp 打开目录的变量是在 'required' 页面上生成的,因此它不会通过会话变量丢失任何内容

如果我将它指向一个不正确的目录,它会被适当的错误处理捕获,但是当它 'successfully' 连接时,我会收到错误 500

Page1.php

<?php
require 'Page2.php';
sftpFunc();
?>

Page2.php

<?php
Function sftpFunc()
{

/* variable declarations and value assignments go here*/


if (!$FTP_CONN = ssh2_connect($FTP_HOST, $FTP_PORT))
            die('Unable to connect');
if (!ssh2_auth_password($FTP_CONN, $FTP_USER, $FTP_PASS))
            die('Unable to authenticate.');
if (!$FTP_STRE = ssh2_sftp($FTP_CONN))
            die('Unable to create a stream.');
if (!$FTP_OPEN = opendir("ssh2.sftp://{$FTP_STRE}{$FTP_DIRI}"))
    die('Could not open the directory');
}
?>

将站点上的 php 版本从 7.2.34 更新为 7.3.11 并且似乎已经完成技巧,之前没有看到 opendir() 的任何版本特定问题,它似乎只在通过不同页面上的函数使用它时才会发生。

不确定原因,但至少这是有效的。