0

我搜索了一种解决方案来发出异步页面请求,并找到了这些代码行。(实际上我编辑了一点)

function do_the_thing()
{
   $parts = parse_url("mail_sender.php");
   $fp = fsockopen($parts['host'], isset($parts['port']) ? $parts['port'] : 80, 
                   $errno, $errstr, 30);
   $out = "POST " . $parts['path'] . " HTTP/1.1\r\n";
   $out.= "Host: " . $parts['host'] . "\r\n";
   $out.= "Content-Type: application/x-www-form-urlencoded\r\n";
   $out.= "Connection: Close\r\n\r\n";
   fwrite($fp, $out);
   fclose($fp);
}

所以我有一个mail_sender.php自动发送电子邮件,但是通过这个异步调用,它什么都不发送。我在这里错过了什么吗?我正在另一个页面中调用函数,因此页面加载继续进行,而无需等待邮件发送过程。唯一的问题是,我似乎无法请求页面或请求页面但没有完成这项工作。

4

1 回答 1

0

只看你函数的前两行,你就有一个问题:

parse_url("mail_sender.php")为您提供一个包含一个元素的数组(参见示例):

array(1) {
  ["path"]=>
  string(15) "mail_sender.php"
}

所以你在fsockopen没有第一个 - 必需 - 参数的情况下调用。

于 2012-10-01T14:38:05.870 回答