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
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
Två månader med Keto
Spelbord v3
Mechanical Age map
More shading and water
Första månaden med Keto
Keto
Fotosession: Tabitha
Utebelysning
Återvinningsskåp
Måla om huset
Byggt hylla till vintunnorna
Dodge RAM
Inline-redigering
Drömmen om ett spa
Dags för carport
Survey Island, what is happening?
Golvprov
Gillestugan uppdaterad!
Spelbord v2
Tre billyhyllor blir två
Gymkort
You can't take the sky from me
Högtalare klara!
eklundh.com tar ned skylten
Högtalare bestämda!
Uppgraderingar biorum
Lord of the Rings-maraton
Ergonomiskt som tusan!