dinita Posted January 16, 2013 Share Posted January 16, 2013 I'm a big fan of Big Brother UK and as a fun project I have built a Twitter hash tag counter to count the battle between the contestants this year. Using the API from Topsy.com I have built a counter that shows the amount of tweets daily, monthly and hourly. However, I wondered if it was possible for me to calculate the amount of tweets say between the time the page was loaded and the time a user clicks stop so I can see how the numbers have change during the show. Would it be possible to use the setTimeOut() function or is there a better way of doing this? heres my code: <?php error_reporting(0); $jsonurl = "http://otter.topsy.com/searchcount.json?q=%23teamrylan&type=tweet&apikey=FJWCK5YSZIBEUZX4HYJQAAAAABLTPFQ3DVIQAAAAAAAFQGYA"; $json = file_get_contents($jsonurl, 0, null, null); $json_output = json_decode($json, true); $json_output = array_values($json_output); foreach ($json_output as $key => $val) { $hourly = number_format($val["h"]); $daily = number_format($val["d"]); $weekly = number_format($val["w"]); $monthly = number_format($val["m"]); $alltime = number_format($val["a"]); } echo '<strong>How many times have people tweeted #TeamRylan</strong><br /><br />'; echo 'In the last Hour: ' . $hourly . '<br />'; echo 'In the last Day: ' . $daily . '<br />'; echo 'In the last Week: ' . $weekly . '<br />'; echo 'In the last Month: ' . $monthly . '<br />'; echo 'Ever: ' . $alltime . '<br />'; ?> Quote Link to comment https://forums.phpfreaks.com/topic/273232-twitter-hashtag-counter/ Share on other sites More sharing options...
premiso Posted January 16, 2013 Share Posted January 16, 2013 Using cURL over file_get_contents will be about 3-5times faster than file_get_contents, so if you have the option to use cURL, I would opt for that for a bit more efficiency. Also, you can display the text without echo's using <?php echo $weekly; ?> such as: ?> <strong>How many times have people tweeted #TeamRylan</strong><br /><br /> In the last Hour: <?php echo $hourly; ?><br /> In the last Day: <?php echo $daily; ?><br /> In the last Week: <?php echo $weekly; ?><br /> In the last Month: <?php echo $monthly; ?><br /> Ever: <?php echo $alltime; ?> <br /> Granted the display part is more or less preference, but to me that would be easier to edit not having to worry about quotes etc. Finally, you do not need a foreach, instead just do this: <?php error_reporting(0); $jsonurl = "http://otter.topsy.com/searchcount.json?q=%23teamrylan&type=tweet&apikey=FJWCK5YSZIBEUZX4HYJQAAAAABLTPFQ3DVIQAAAAAAAFQGYA"; $json = file_get_contents($jsonurl, 0, null, null); $json_output = json_decode($json, true); $hourly = number_format($json_output['response']["h"]); $daily = number_format($json_output['response']["d"]); $weekly = number_format($json_output['response']["w"]); $monthly = number_format($json_output['response']["m"]); $alltime = number_format($json_output['response']["a"]); None of this stuff is really necessary, just some items that will help efficiency a little bit, ie not having to loop etc. Best of luck. Quote Link to comment https://forums.phpfreaks.com/topic/273232-twitter-hashtag-counter/#findComment-1406144 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.