gpt4 book ai didi

php - 如何在 PHP 中发出异步 GET 请求?

转载 作者:IT老高 更新时间:2023-10-28 11:52:32 25 4
gpt4 key购买 nike

我希望向不同服务器上的另一个脚本发出一个简单的 GET 请求。我该怎么做?

在一种情况下,我只需要请求一个外部脚本而不需要任何输出。

make_request('http://www.externalsite.com/script1.php?variable=45'); //example usage

第二种情况,我需要获取文本输出。

$output = make_request('http://www.externalsite.com/script2.php?variable=45');
echo $output; //string output

说实话,我不想搞乱 CURL,因为这不是 CURL 的真正工作。我也不想使用 http_get,因为我没有 PECL 扩展。

fsockopen 会起作用吗?如果是这样,如何在不读取文件内容的情况下执行此操作?没有别的办法吗?

谢谢大家

更新

我应该补充说,在第一种情况下,我不想等待脚本返回任何内容。据我了解 file_get_contents() 将等待页面完全加载等?

最佳答案

file_get_contents 会做你想做的事

$output = file_get_contents('http://www.example.com/');
echo $output;

编辑:一种触发 GET 请求并立即返回的方法。

引自 http://petewarden.typepad.com/searchbrowser/2008/06/how-to-post-an.html

function curl_post_async($url, $params)
{
foreach ($params as $key => &$val) {
if (is_array($val)) $val = implode(',', $val);
$post_params[] = $key.'='.urlencode($val);
}
$post_string = implode('&', $post_params);

$parts=parse_url($url);

$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.= "Content-Length: ".strlen($post_string)."\r\n";
$out.= "Connection: Close\r\n\r\n";
if (isset($post_string)) $out.= $post_string;

fwrite($fp, $out);
fclose($fp);
}

它的作用是打开一个套接字,触发一个获取请求,然后立即关闭套接字并返回。

关于php - 如何在 PHP 中发出异步 GET 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/962915/

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