2012-10-01 44 views
0

我搜索了一個解決方案,使異步頁面請求,並找到這些代碼行。 (其實我editted一點點)PHP異步頁面請求代碼

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

就看你的函數的第一個兩行,你有一個問題:

parse_url("mail_sender.php")給你一個數組的一個元素(see example):

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

所以你無需調用fsockopen首先需要的參數。

+0

我想我已經糾正了這個錯誤。是好的,如果我給這樣的URL地址:「http://127.0.0.1/mail_sender.php」我試過這個,現在路徑和主機值返回,但仍然沒有任何反應,因爲我編碼在mail_sender.php。 –