1

はじめ
に プレゼンテーション サイトを開発していて、Stack Overflow プロファイルの情報/投稿/データ (トップ タグ、スコアなど) を含めたいと考えています。

目的のデータを取得するために data.stackexchange.com を見つけましたが、このデータを自分のサイトに表示する方法がわかりません。
github.com で、この前提条件を見つけました: https://github.com/StackExchange/StackExchange.DataExplorer#prerequisites基本的に、このデータを表示できるようにするには.NET プログラマーである必要がありますが、私はPHP プログラマーです。とApache MySQLを使用しPHPます。

使用できるPHP MsSQL関数がたくさんあることは知っていますが、どのユーザー名とパスワードを使用してStack Exchangeデータベースに接続できますか(ゲスト/制限付きユーザーと考えています)?

ここではあまり話題にならないかもしれませんが、自分のサイトで Stack Overflow データを表示する方法に関する詳細情報はどこで入手できますか?

4

2 に答える 2

1

http://simplehtmldom.sourceforge.net/をチェックすることをお勧めします

このようなものは、PHP Simple HTML DOM Parser を使用して評判を得るべきです

$html = file_get_html('https://stackoverflow.com/users/5039442/thetaskmaster');
$reputation = $html->find('.reputation', 0)->plaintext;
于 2015-08-01T11:57:36.827 に答える
0

CONFUS3D の回答が適切な解決策であっても、ユーザー インターフェイスを変更すると、サイトでエラーが発生する可能性があります。

おそらく必要なデータのほとんどを取得できるStack Exchange API セットを使用することをお勧めします。

API クエリはJSON オブジェクトを返します。この PHP クラスを使用して、このオブジェクトを取得します。

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 オブジェクトを保存してから$UInfo_API、API クエリを含み$UInfo_Syn、保存された JSON オブジェクトのコンテンツを取得する 2 つの変数を宣言します。

$UInfo_API = "api.stackexchange.com/2.2/users/5039442?site=stackoverflow";
$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"];
于 2015-08-25T17:13:23.997 に答える