Useful script?
Thursday, 6th October 2005
If you have a website of your own, you might want to have your journal on it. (I do ).
This script can be used to generate a simple HTML document (such as this one!) containing a brief description of your recent entries, a title and a link to the item itself.
<?php # UPDATE_JOURNAL.PHP # Ben Ryves 2005. # CONFIG: $journal_id = 273102; # ID number of your journal. $items = 8; # How many recent journal entries do you want? $saved_page = 'journal.htm'; # Which page do you want to save the journal to? $password = 'password'; # What's the password required to fire off an update? if (isset($_POST['submit'])) { if ($_POST['password']==$password) { # Run the update script: $url='http://www.gamedev.net/community/forums/lib/rss.asp?mode=journal&jn='.$journal_id; $handle = fopen($url,'r'); $writer = fopen($saved_page,'w'); if (!$handle) { echo "<p>The RSS feed is not available at the moment - sorry.</p>"; } else { global $cur_pos, $buffer; $buffer = '; while (!feof ($handle)) { $buffer .= fgets($handle, 4096); } fclose($handle); $cur_pos = strpos($buffer,"<item>"); for ($i=0; $i<$items; ++$i) { $title = get_between_text("<title>","</title>"); if ($title===false) break; $link = get_between_text("<link>","</link>"); $description = html_entity_decode(preg_replace("#<(.*?)>#i","",get_between_text("<description>","</description>")),ENT_QUOTES); $description = preg_replace("#<(.*)#i","...",$description); fwrite($writer,"<p><b><a href=\"$link\" target=\"_blank\">$title</a></b><br /><small>$description</small></p>"); } fclose($writer); echo "<p>$saved_page has been updated!</p>"; return; } } else { echo "<p>Invalid password: sorry!</p>"; unset($_POST['submit']); } } ?> <form method="post"> <p>Please enter your password: <input type="password" name="password" /> <input type="submit" value="Go!" name="submit" /> </p> </form> <?php function get_between_text($before, $after) { global $buffer, $cur_pos; $cur_pos = strpos($buffer, $before, $cur_pos); if ($cur_pos===false) { return false; } else { $cur_pos+=strlen($before); $e = strpos($buffer, $after, $cur_pos); return substr($buffer, $cur_pos, $e-$cur_pos); } } ?>
You need to set a password just to stop people from running the script (it's a pretty basic system). You'll also need to set the correct ID number. It's a very quick-and-dirty script, so if you have any problems with it give me a shout!