如何在我的网站上显示 stackexchange 数据?
How to display stackexchange data on my site?
简介
我正在开发我的演示网站,我想包括我的 Stack Overflow 个人资料 info/posts/data(例如热门标签、分数等。)
我发现 data.stackexchange.com 可以检索所需的数据,但我不明白如何在我的站点中显示这些数据。
在 github.com 中,我发现了这个先决条件:https://github.com/StackExchange/StackExchange.DataExplorer#prerequisites 基本上说我必须是 .NET 程序员 才能显示此数据,但我是 PHP 程序员, 我与 Apache
MySQL
和 PHP
.
一起工作
我知道有很多 PHP MsSQL functions 我可以使用,但我如何使用哪个用户名密码连接到 Stack Exchange 数据库(我认为是 guest/limited 用户)?
即使这不是太多的主题,我在哪里可以找到有关如何在我的网站上显示 Stack Overflow 数据的更多信息?
我建议查看 http://simplehtmldom.sourceforge.net/
使用 PHP 简单 HTML DOM 解析器
$html = file_get_html('https://whosebug.com/users/5039442/thetaskmaster');
$reputation = $html->find('.reputation', 0)->plaintext;
即使 CONFUS3D 的答案是一个很好的解决方案,对用户界面的任何更改都可能导致您的站点出现错误。
我建议您使用 Stack Exchange API set 来检索您可能需要的大部分数据。
任何API查询都会return一个JSON对象。我使用这个 PHP class 来检索这个对象:
class ApiReader {
public function getResponse($url) {
$cH = curl_init();
curl_setopt($cH, CURLOPT_URL, $url);
curl_setopt($cH, CURLOPT_HEADER, 0);
curl_setopt($cH, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cH, CURLOPT_TIMEOUT, 30);
curl_setopt($cH, CURLOPT_USERAGENT, cURL);
curl_setopt($cH, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($cH, CURLOPT_ENCODING, "gzip");
$result = curl_exec($cH);
if(curl_errno($cH)) {
$retur = FALSE;
}
else {
$status = curl_getinfo($cH, CURLINFO_HTTP_CODE);
if($status == 200) {
$retur = $result;
}
else {
$retur = FALSE;
}
}
curl_close($cH);
return $retur;
}
}
我用这个小技巧在离线的情况下测试网站
在您的主机中,保存您需要使用的所有 JSON 对象,然后声明两个包含 API 查询的变量 $UInfo_API
和获取内容的 $UInfo_Syn
保存的 JSON 个对象
$UInfo_API = "api.stackexchange.com/2.2/users/5039442?site=Whosebug";
$UInfo_Syn = file_get_contents("yourjsonobject.json");
然后将结果保存在一个变量中,检查 getResponse()
方法是否失败。之后,您就可以使用数据了。
$sear = new ApiReader();
$uInfo = $sear->getResponse($UInfo_API);
$uInfo = ($uInfo !== FALSE)? json_decode($uInfo, TRUE): json_decode($UInfo_Syn, TRUE);
$rep = $uInfo["items"][0]["reputation"];
简介
我正在开发我的演示网站,我想包括我的 Stack Overflow 个人资料 info/posts/data(例如热门标签、分数等。)
我发现 data.stackexchange.com 可以检索所需的数据,但我不明白如何在我的站点中显示这些数据。
在 github.com 中,我发现了这个先决条件:https://github.com/StackExchange/StackExchange.DataExplorer#prerequisites 基本上说我必须是 .NET 程序员 才能显示此数据,但我是 PHP 程序员, 我与 Apache
MySQL
和 PHP
.
我知道有很多 PHP MsSQL functions 我可以使用,但我如何使用哪个用户名密码连接到 Stack Exchange 数据库(我认为是 guest/limited 用户)?
即使这不是太多的主题,我在哪里可以找到有关如何在我的网站上显示 Stack Overflow 数据的更多信息?
我建议查看 http://simplehtmldom.sourceforge.net/
使用 PHP 简单 HTML DOM 解析器
$html = file_get_html('https://whosebug.com/users/5039442/thetaskmaster');
$reputation = $html->find('.reputation', 0)->plaintext;
即使 CONFUS3D 的答案是一个很好的解决方案,对用户界面的任何更改都可能导致您的站点出现错误。
我建议您使用 Stack Exchange API set 来检索您可能需要的大部分数据。
任何API查询都会return一个JSON对象。我使用这个 PHP class 来检索这个对象:
class ApiReader {
public function getResponse($url) {
$cH = curl_init();
curl_setopt($cH, CURLOPT_URL, $url);
curl_setopt($cH, CURLOPT_HEADER, 0);
curl_setopt($cH, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cH, CURLOPT_TIMEOUT, 30);
curl_setopt($cH, CURLOPT_USERAGENT, cURL);
curl_setopt($cH, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($cH, CURLOPT_ENCODING, "gzip");
$result = curl_exec($cH);
if(curl_errno($cH)) {
$retur = FALSE;
}
else {
$status = curl_getinfo($cH, CURLINFO_HTTP_CODE);
if($status == 200) {
$retur = $result;
}
else {
$retur = FALSE;
}
}
curl_close($cH);
return $retur;
}
}
我用这个小技巧在离线的情况下测试网站
在您的主机中,保存您需要使用的所有 JSON 对象,然后声明两个包含 API 查询的变量 $UInfo_API
和获取内容的 $UInfo_Syn
保存的 JSON 个对象
$UInfo_API = "api.stackexchange.com/2.2/users/5039442?site=Whosebug";
$UInfo_Syn = file_get_contents("yourjsonobject.json");
然后将结果保存在一个变量中,检查 getResponse()
方法是否失败。之后,您就可以使用数据了。
$sear = new ApiReader();
$uInfo = $sear->getResponse($UInfo_API);
$uInfo = ($uInfo !== FALSE)? json_decode($uInfo, TRUE): json_decode($UInfo_Syn, TRUE);
$rep = $uInfo["items"][0]["reputation"];