【发布时间】:2013-10-04 01:32:48
【问题描述】:
我正在尝试使用此 PHP 访问 Stack Overflow 上最近的 cmets 列表:
<?php
function do_post_request($url, $data, $optional_headers = null)
{
$params = array('http' => array(
'method' => 'POST',
'content' => $data
));
if ($optional_headers !== null) {
$params['http']['header'] = $optional_headers;
}
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp) {
throw new Exception("Problem with $url, $php_errormsg");
}
$response = @stream_get_contents($fp);
if ($response === false) {
throw new Exception("Problem reading data from $url, $php_errormsg");
}
return $response;
}
echo do_post_request("https://api.stackexchange.com/2.1/comments?order=desc&sort=creation&site=stackoverflow", "");
?>
但是,当我运行它时,我收到以下错误消息:
$ php index.php
PHP Notice: Undefined variable: php_errormsg in /var/www/secomments/index.php on line 14
PHP Fatal error: Uncaught exception 'Exception' with message 'Problem with https://api.stackexchange.com/2.1/comments?order=desc&sort=creation&site=stackoverflow, ' in /var/www/secomments/index.php:14
Stack trace:
#0 /var/www/secomments/index.php(22): do_post_request('https://api.sta...', '')
#1 {main}
thrown in /var/www/secomments/index.php on line 14
是否有人对可能导致此问题的原因以及如何解决此问题有任何想法?
【问题讨论】:
-
@zerkms 这只是一个错误,目前并不重要。真正的错误是
fopen失败了,没有人知道为什么因为错误抑制 -
@Phil:重要的是阅读。即使使用
@,他的下一个问题也是“为什么我有一个未处理的异常”。直接指向if (!$fp)条件。以此类推。 -
我打开流失败:HTTP 请求失败! HTTP/1.1 411 长度要求。真的很简单
-
Detailed error on fopen 的可能重复项
标签: php post fatal-error stackexchange-api