gpt4 book ai didi

php脚本可以停止吗?

转载 作者:太空宇宙 更新时间:2023-11-03 16:36:23 24 4
gpt4 key购买 nike

我正在尝试制作一个 paypal IPN 系统,这是一个 paypal 自动检查汇款的系统。他们提供了一个基本的系统脚本来做到这一点。

系统很简单,你在脚本中获取 $_POST[],然后打开一个与 paypal 的套接字,他们会在套接字中响应你有效或无效的单词。

我的问题是打开套接字时,有 50% 的时间我会失去连接。当脚本连接时,我没有任何问题。所以我把它改为 20 次尝试,而不是 1 次:

<?

//...

mail("mi@mail.com", "subject", "executing", "some headers"); //mailme when this is execute

$try = 20;
do{
$fp = @fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 15);
$try--;
}while($try>0 && !$fp);

if (!$fp) { // HTTP ERROR

mail("mi@mail.com", "subject", "error_message_not_connecting", "some headers");

} else {

mail("mi@mail.com", "subject", "connected_reading_socket", "some headers");

//fputs(..); and the loop reading working.

}

?>

在我的测试中,它现在 100% 有效。但在实际转账中,它有 20-30% 的时间不起作用。我收到了第一封邮件,但第二封邮件从来没有失败过。

我在想.. 如果 paypal 只打开与我的服务器的连接 1 秒,php 脚本是否可以在尝试后停止,并停止继续?或者知道这里出了什么问题?

最佳答案

发送邮件也可能会失败,尤其是当您遇到网络问题时。您应该记录 mail() 和您的 fsockopen 的失败情况,以便您以后可以重新访问它们。

此外,您的 fsockopen 可能会卡住。你有 15 秒的超时,你尝试了 20 次,所以你的脚本将工作 20 * 15 = 300 秒 = 5 分钟,这可能比你的 PHP 脚本超时更长 -> PHP 会中止你的脚本,对吧? PHP 中默认的最大执行时间仅为 30 秒。

关于php脚本可以停止吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071812/

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