1

我需要编写一个 php 脚本,它将向我的 PhantomJs 服务器发出 POST 请求,并在收到响应后调用一些回调函数。

假设这是我的 phantomjs 服务器:

var server, service;

server = require('webserver').create();

service = server.listen(8080, function (request, response) {

    //do_something_heavy_with_request_data_here

    response.statusCode = 200;
    response.write("{status: success, data: data}");
    response.close();
});

因此,从我的 php 脚本中,我需要向 phantomjs 发出请求http://localhost:8080,当 phantomjs 完成计算并发送响应时,触发回调函数。我找到了这个主题:如何在 PHP 中发出异步 GET 请求?. 这里有什么用处吗?我正在考虑这种 curl 方法,但不确定如何让所有这些一起运行,因为我是一个完全的 php 初学者:如何在 PHP 中发出异步 GET 请求?.

4

1 回答 1

0

您可以使用cURL. http://www.php.net/manual/en/book.curl.php这是手册。没有什么复杂的。

<?php 

/** 
 * Send a POST requst using cURL 
 * @param string $url to request 
 * @param array $post values to send 
 * @param array $options for cURL 
 * @return string 
 */ 
function curl_post($url, array $post = NULL, array $options = array()) 
{ 
    $defaults = array( 
        CURLOPT_POST => 1, 
        CURLOPT_HEADER => 0, 
        CURLOPT_URL => $url, 
        CURLOPT_FRESH_CONNECT => 1, 
        CURLOPT_RETURNTRANSFER => 1, 
        CURLOPT_FORBID_REUSE => 1, 
        CURLOPT_TIMEOUT => 4, 
        CURLOPT_POSTFIELDS => http_build_query($post) 
    ); 

    $ch = curl_init(); 
    curl_setopt_array($ch, ($options + $defaults)); 
    if( ! $result = curl_exec($ch)) 
    { 
        trigger_error(curl_error($ch)); 
    } 
    curl_close($ch); 
    return $result; 
    } 
?>

这是示例中的代码,适合您的需求。

于 2012-05-17T13:37:28.460 回答