Jag har på förstasidan haft vad jag kallat för "feed" på sistone. Jag kom på att oftast så orkar man inte pränta ned det man kanske tycker är intressant för stunden bara för att det tar för lång tid, samt att man allt som oftast vill tipsa er om någon sida eller bild kanske, utan att för den skull skriva en helt ny blogg, som här. Nej, jag kände att jag skulle vilja ha en lite enklare kanal för smågrejer.
Det jag delar med mig av i min "feed" är:
- Sidor jag röstar "tummen upp" på i StumbleUpon, enkelt och smidigt att dela med sig av skoj sidor
- Filmer jag lägger upp i YouTube
- Bilder jag laddar upp till mitt feed-galleri på MobileMe (skitsmidigt, kan ladda upp direkt från iPhone)
- Länkar jag lägger upp på min medlemssidahär på sandman.net
- Saker jag twittrar om
- Mitt status på facebook
- Artiklar från mac.sandman.net
- Röstningar jag lägger upp
Det jag också vill ha med är videos på youtube som jag sätter som favorit, men den feed:en innehåller tyvärr inte information om när jag satte den som favorit, bara när själva videon lades upp, tyvärr. Ska klura vidare på det vid tillfälle.
Så, hur gör man detta på enklaste sätt då? Ja, förutom för vissa saker så är det ju RSS-flöden som är enkla att ladda ned och läsa och sedan lägga in. Först så skapar jag en funktion som antingen lägger upp en ny post i databasen, om den är unik, så den gör en liten test först
function feed($source, $what, $time, $image = false, $link = false, $desc = false) { $q = mysql_query("select count(id) from mydb.feed where type = '$source' and title = '" . sqlesc($what) . "' and date = '" . sqlesc($time) . "'") or print mysql_error(); list($count) = mysql_fetch_array($q); if ($count == 0) { mysql_query("insert into mydb.feed (type, title, date, image, link, description) values ('$source', '" . sqlesc($what) . "', '" . sqlesc($time) . "', '$image', '" . sqlesc($link) . "', '" . sqlesc($desc) . "')") or print mysql_error(); } } function sqlesc($str) { return mysql_real_escape_string(stripslashes($str)); }
Ok, så nu ska vi ta ned lite info från någon källa, och jag fick en fråga om hur jag gjorde med min Twitter-info så jag tänkte ta den som exempel. Så här ser det ut:
require_once("RSS.php"); $url = "http://twitter.com/statuses/user_timeline/.rss"; $rss = new XML_RSS($url); $rss->parse(); foreach($rss->items as $r){ $r["title"] = trim(utf8_decode($r["title"])); $r["title"] = preg_replace("/^USERNAME: /", "", $r["title"]); # Ta bort ditt username från twittern $r["pubdate"] = date("Y-m-d H:i", strtotime($r["pubdate"])); if (preg_match("/^@/", $r["title"])) continue; # Hoppa över när jag svarar på någon feed("twitter", $r["title"], $r["pubdate"], false, $r["link"]); }
Detta kräver att du använder dig av RSS-parsern från pear för att läsa in XML-koden. Sen går du bara igenom alla poster i RSS-feeden och lägger till dom med feed(), som ju bara lägger till i databasen om det är en ny post.
Nu är det bara att hitta RSS-flöden som har med dig att göra så gör du samma sak med dom. Happy feeding!