techmonkey78 Posted July 13, 2013 Share Posted July 13, 2013 (edited) Hi, I'm trying to write a script that posts the contents of a text file generated by radio automation software from a cron job every 30 minutes. The script should open this file (data.txt), compare it to a second file(title.txt), if it's different, post the new version to twitter and update title.txt. If it's not different, just die. The posting is working just fine, however, it will post duplicates as it's not doing the comparison part. Currently the station isn't 24 hours so it will just keep posting ad infinitum as it stands, if the station is off air, the two text files should be the same and not post. Where am I going wrong here? Many thanks in advance Iain <?php include 'EpiCurl.php'; include 'EpiOAuth.php'; include 'EpiTwitter.php'; #Consumer key token $consumer_key = 'xxxxxxx'; #Consumer secret token $consumer_secret = 'xxxxxxx'; #Access Token $token = 'xxxxxx'; #Access Token Secret $secret= 'xxxxxxxx'; $twitterObj = new EpiTwitter($consumer_key, $consumer_secret, $token, $secret); $twitterObjUnAuth = new EpiTwitter($consumer_key, $consumer_secret); $file = fopen("../data.txt","r"); if(!file) { echo("ERROR:cant open file"); } else { $buff = fread ($file,filesize("../data.txt")); } echo $buff; $refresh = "3600"; // Page refresh time in seconds. Put 0 for no refresh ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" > <?php if ($refresh != "0") { print "<meta http-equiv=\"refresh\" content=\"$refresh\">\n"; } print "<title>TwiceCast - $buff</title>"; ?> </head> <body><center> <?php $fh = fopen('title.txt', 'r'); $track = fread($fh, filesize('title.txt')); if ($track == $buff."\n"){ fclose($fh); die(0); }else{ @fclose($fh); // if it errors, then the file doesn't exist, and the stream was never open $fh = fopen('title.txt', 'w'); fwrite($fh, $buff ."\n"); fclose($fh); $twitterObj->post('/statuses/update.json', array('status' => "Recently played: " . $buff . " #nowplaying http://bit.ly/kbridgeuk")); } ?> </center> </body> </html> Edited July 13, 2013 by techmonkey78 Quote Link to comment https://forums.phpfreaks.com/topic/280122-php-post-to-twitter-compare-two-files/ Share on other sites More sharing options...
denno020 Posted July 13, 2013 Share Posted July 13, 2013 (edited) One quick way to see if two files are the same is to compare the md5 hash of them. So if you md5() each file, them compare the hashes in a simple if statement, that will tell you if they are identical or not. $file1 = file("path/to/file1"); $file2 = file("path/to/file2"); $file1Hash = md5($file1); $file2Hash = md5($file2); if($file1Hash == $file2Hash){ //The files are the same }else{ //The files are different } I think that's what you'd be after.. Denno Edited July 13, 2013 by denno020 Quote Link to comment https://forums.phpfreaks.com/topic/280122-php-post-to-twitter-compare-two-files/#findComment-1440599 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.