Min feed
2008-09-22 - feed, php, rss
0
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
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!
Lego Storm Trooper
Fågel Fenix
Två hyllor på badrummet
Hobbyhörna fixad
Hylla bakom soffan
Modellbygge igen!
Porträtt av u/Flattie-Ratty
Porträtt av u/DangDoood
Buy prints of my maps
Hero Dashboard för Descent
3D-printer
Fältsjukhus 616
Ny kaffemaskin
Porträtt av u/elizabeeeef
Jämförelse 135 mm
Nya objektiv
Porträtt av kompis mamma
Använda utrymmet under trappen
Spelbord
Pimpning av köks-ön
Jag saknar min Dodge!
Acrylic drip