人々は私のウェブサイトの速度について、それが遅いと不平を言い始めています。問題を特定するためにあなたの助けが必要です。私はより良い解決策を求めて狂ったようにインターネットを検索してきましたが、成功しませんでした。justin.tv/twitchからstreamnameとストリーマーの訪問者数を取得しようとしています。
現在、私は独自のAPIwikiページから開始コードを使用しています。ただし、非常に遅いです。mySQLデータベースに52個のストリームが格納されており、配列に入れて、jsonを使用してデータを解析しています。
<?php
$result = mysql_query("SELECT streamname FROM streams") or die(mysql_error());
$ids=array();
while($row = mysql_fetch_assoc($result))
{
$ids[]=$row["streamname"];
}
$stream_list = implode(",", $ids);
$mycurl = curl_init();
curl_setopt ($mycurl, CURLOPT_HEADER, 0);
curl_setopt ($mycurl, CURLOPT_RETURNTRANSFER, 1);
//Build the URL
$url = "http://api.justin.tv/api/stream/list.json?channel=" . $stream_list;
curl_setopt ($mycurl, CURLOPT_URL, $url);
$web_response = curl_exec($mycurl);
$results = json_decode($web_response);
foreach($results as $s)
{
echo "<a href='stream.php?watch=" . $s->channel->login . "'>" . $s->channel->login . " " . $s->channel_count . " viewers</a><br />";
}
?>
アップデート。はい、MySQLを使用して各チャネルのカテゴリのタイプを設定します。私もこれなしで試してみましたが、速度差はそれほどありません。したがって、ロードに時間がかかるのは依然としてjsonです。これがMySQLの使い方です
$result = mysql_query("SELECT streamname FROM streams WHERE race = 'terran' OR race = 'protoss' OR race = 'zerg'") or die(mysql_error());
$ids=array();
while($row = mysql_fetch_assoc($result))
{
$ids[]=$row["streamname"];
}
$stream_list = implode(",", $ids);
$mycurl = curl_init();
curl_setopt ($mycurl, CURLOPT_HEADER, 0);
curl_setopt ($mycurl, CURLOPT_RETURNTRANSFER, 1);
//Build the URL
$url = "http://api.justin.tv/api/stream/list.json?channel=" . $stream_list;
curl_setopt ($mycurl, CURLOPT_URL, $url);
$web_response = curl_exec($mycurl);
$results = json_decode($web_response);
echo "<div id=\"tab1\">";
foreach($results as $s)
{
// get race
$sql = mysql_query("SELECT race, streamname, name FROM streams WHERE streamname = '" . $s->channel->login . "'") or die(mysql_error());
$row = mysql_fetch_array($sql, MYSQL_BOTH);
$race = $row['race']; // race
$streamername = $row['name'];
echo "race: " . $race . " <a href='stream.php?watch=" . $s->channel->login . "'>" . $row['name'] . " " . $s->channel_count . " viewers</a><br />";
}
echo "</div>";