热搜:NVER node 开发 php

php通过amf 与flex 通信,我调试发现,只要有date()函数,flex返回就报错

2024-09-02 20:55:01
php通过amf 与flex 通信,我调试发现,只要有date()函数,flex返回就报错

a.php

<?phpclass edit_img{   function gmtime()   {    $temp = date('Z');    return $temp;   }

}
?>
这个php通过 amf 与flex 通信,我调试发现,只要有date()函数,flex返回就报错。

amf是2.1.1版,反复想不通这个问题

a.php
<?phpclass edit_img{   function gmtime()   {    $temp = time(); //这样就正常    return $temp;   }

}
?>


回复讨论(解决方案)

错误信息是什么?

错误信息是什么?

Flex 提示错误信息:Channel disconnected before an acknowledgement was received 。

目前的调试,flex都报这一个错误

估计是没有指定时区,导致使用date()函数的warning。
php中屏蔽warning级错误,或者在php中加上 date_default_timezone_set("Asia/Shanghai");

date('Z') 返回不超过5位的正负数字
time 返回 10 位的数字

你的 gmtime 显然应返回一个格林威治时间的秒数
如果 gmtime 方法的调用者做了合法性检查,显然就会因错误而终止程序了

这一点你可以这样验证

function gmtime()   {    return 100;   }

date('Z') 返回不超过5位的正负数字
time 返回 10 位的数字

你的 gmtime 显然应返回一个格林威治时间的秒数
如果 gmtime 方法的调用者做了合法性检查,显然就会因错误而终止程序了

这一点你可以这样验证

function gmtime()   {    return 100;   }

感谢版主,在这里问了很多问题都有你的回复。问题已经解决

估计是没有指定时区,导致使用date()函数的warning。
php中屏蔽warning级错误,或者在php中加上 date_default_timezone_set("Asia/Shanghai");

加上就好了,真是奇怪,我测试的时候,即使date('s'); 也返回错误。根本没想到这里。