Hoppa direkt till innehåll

Min feed

2008-09-22 - feed, php, rss
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:

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!
Mer i Tutorials
Bygg MySQLqueries automatiskt
Mail Processing
Snygga till rubrikerna med jQuery
Min feed
Fixa transparenta PNGbilder i Internet Explorer 6
Rkna tid med PHP
Dlj emailadresser fr spamrobotar
Nyckelord: feed, php eller rss
OAuth fungerar inte
Hur nya iPaden stller till det p webben
Layoutmotor fr Atlas
Min feed
Times
Mixtejp
Norrsken
Kan ha "råkat" skaffa något på Sci-Fi-mässan
Recension: Steam Hotell
Rostfärg och IKEA-lampa
Create a physical book from my digital book
Survey Island
Someone is trying to sell my map!
Julkalender
Myst book updated
Recension: Yasuragi Ryokan Hanare
Recension: Ad Astra
Ny tatuering - midgårdsormen!
Minnestal till en kaffekopp
Förlovade
Sweden Rock 2023
Ny nummerskylt för huset
Fix i husbilen
Grubbelgubbe
Måla med rostfärg
Vårfix i trädgården
Jung Kook
Pappaskämt och annan humor
Bilder på spelbordet när det används
Använda laserskäraren för att skapa innehål...
Julklappar med laserskärare
Budget-Spa
Nyckelskåp
Fjällkaffe
1/20 DeLorean Time Machine
Caso Outdoor Cooler
Minikyl Coca Cola
Verktygsvagn med verktyg, 161 delar
CSS filters for background images
Huset ommålat!
Skiss för tatuering
Spelbordet klart
Laser cutting my Myst Island
We Can Do It
Batwing
Elsa
Skaffat husbil
Foton på bilen
Remarkable 2
Ny espressomaskin!
Porträtt av Emma
AtlasCMS och rådande krissituation
Ny bil! Ford Mustang Mach-E GT
Spelbordet, igen
Ny bil beställd