Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php7.3 ftpu cdup()抛出;“CDUP成功”;某些FTP服务器中出现异常 用于($i=1;$iconn); 如果(!$res){ 抛出新\异常(“ftp\U cdup失败”); } }捕获(\异常$e){ /** *:ftp_cdup():cdup成功。“/”是当前目录 */ 如果(strpos($e->getMessage(),'ftp\u cdup():cdup successful')>=0){ //正常的 }否则{ 抛出新的\异常('ftp_cdupfail:'。$e->getMessage()); } } }_Php_Ftp - Fatal编程技术网

php7.3 ftpu cdup()抛出;“CDUP成功”;某些FTP服务器中出现异常 用于($i=1;$iconn); 如果(!$res){ 抛出新\异常(“ftp\U cdup失败”); } }捕获(\异常$e){ /** *:ftp_cdup():cdup成功。“/”是当前目录 */ 如果(strpos($e->getMessage(),'ftp\u cdup():cdup successful')>=0){ //正常的 }否则{ 抛出新的\异常('ftp_cdupfail:'。$e->getMessage()); } } }

php7.3 ftpu cdup()抛出;“CDUP成功”;某些FTP服务器中出现异常 用于($i=1;$iconn); 如果(!$res){ 抛出新\异常(“ftp\U cdup失败”); } }捕获(\异常$e){ /** *:ftp_cdup():cdup成功。“/”是当前目录 */ 如果(strpos($e->getMessage(),'ftp\u cdup():cdup successful')>=0){ //正常的 }否则{ 抛出新的\异常('ftp_cdupfail:'。$e->getMessage()); } } },php,ftp,Php,Ftp,例外是 ftp_cdup():cdup成功。“/”是当前目录 事实上这是正常的。首先,我不认为ftp\u cdup(或任何其他PHP ftp函数)引发任何异常。您可能有一些错误处理程序,不是吗 无论如何,PHP希望服务器以代码250响应成功的CDUP命令。您的服务器可能会响应一些其他2xx成功代码(如plain 200)。我不认为PHP就在这里。我认为你对此无能为力 您可以执行以下操作,而不是使用ftp\u cdup: for($i=1;$i<=$path_div;$i++)

例外是

ftp_cdup():cdup成功。“/”是当前目录


事实上这是正常的。

首先,我不认为
ftp\u cdup
(或任何其他PHP ftp函数)引发任何异常。您可能有一些错误处理程序,不是吗


无论如何,PHP希望服务器以代码250响应成功的
CDUP
命令。您的服务器可能会响应一些其他2xx成功代码(如plain 200)。我不认为PHP就在这里。我认为你对此无能为力

您可以执行以下操作,而不是使用
ftp\u cdup

for($i=1;$i<=$path_div;$i++)         
{
    try{
        $res = ftp_cdup($this->conn);
        if(!$res){
            throw new \Exception('ftp_cdup fail');
        }
    }catch (\Exception $e){
        /**
         * :ftp_cdup(): CDUP successful. "/" is current directory
         */
        if(strpos($e->getMessage(),'ftp_cdup(): CDUP successful')>=0){
            //normal
        }else{
            throw new \Exception('ftp_cdupfail:'.$e->getMessage());
        }
    }
}
并检查2xx代码的
$resp

或者只使用
ftp\u chdir
而不是
ftp\u cdup


我不认为FTP RFC 959真的要求响应必须是200。这只是一个例子。问题可能来自
CWD
CDUP
示例中的不一致性。我希望两者使用相同的代码。但是RFC显示250表示
CWD
,而200表示
CDUP
。甚至RFC也表示:“CDUP的回复代码与CWD的回复代码相同。”

$resp = ftp_raw("CDUP");