我搜索了一个解决方案来发出异步页面请求,并找到了这些代码行。 (实际上我编辑了一点)
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
自动发送电子邮件,但是通过这个异步调用,它不会发送任何内容。我在这里错过了什么吗?我在另一个页面调用函数,所以页面加载继续,而不等待邮件发送过程。唯一的问题是,我似乎无法请求页面或页面被请求但是没有完成这项工作。
答案 0 :(得分:0)
只要查看函数的前两行,就会出现问题:
parse_url("mail_sender.php")
为您提供了一个包含一个元素(see example)的数组:
array(1) {
["path"]=>
string(15) "mail_sender.php"
}
所以你在没有第一个 - 必需 - 参数的情况下调用fsockopen
。