我正在编写一个PHP错误集合小部件,它从应用程序收集错误,然后通过向URL发出POST请求来报告它们。
有多少不同的方法可以做到这一点,你如何检测它们是否可用?在不同的服务器上可能没有安装扩展,可能会关闭安全选项,所以我想尝试尽可能多的。
此服务是BSD许可下的开放源代码BTW:http://elastik.sourceforge.net/
答案 0 :(得分:1)
哦等等,看起来fopen可以包含POST数据:http://wezfurlong.org/blog/2006/nov/http-post-from-php-without-curl
编辑:无法轻微编辑,无法从该网址获取代码,因此这是我的最终代码:
if (ini_get('allow_url_fopen')) {
$params = array('http' => array(
'method' => 'POST',
'content' => http_build_query($data),
'header'=> "Content-type: application/x-www-form-urlencoded\r\n",
));
$ctx = stream_context_create($params);
$fp = fopen($url, 'rb', false, $ctx);
if (!$fp) {
print "FOPEN ERROR!";
die();
}
fclose($fp);
}
答案 1 :(得分:1)
Zend_Http_Client实现了四种不同的连接目标的方式,并且可以轻松扩展(当然,您不需要使用完整的框架;)。
答案 2 :(得分:1)
要回答至少部分问题,您应该能够检测到extension_loaded()
是否加载了curl:
if (!extension_loaded('curl')) {
# Yay curl!
}
答案 3 :(得分:0)
Snoopy是用于发出HTTP请求的流行且功能齐全的库。