Feedreader zum selber hosten – Tiny Tiny RSS

16. März 2012, 11:24 von Tobi | 5 Kommentare

Tiny Tiny RSS ist ein in PHP geschriebener webbasierter Open Source Feedreader. Er kann auf eigenem Webspace oder einem eigenen Server installiert werden und ist daher eine gute Alternative zum Google Reader. Der Hauptvorteil liegt darin, dass man unabhängig von Diensten Dritter ist und die volle Kontrolle über seine Daten behält.

Obwohl die Installation manuell erfolgen muss, ist Tiny Tiny RSS schnell ein­ge­rich­tet. Bestehende Feeds bei Google Reader kann man bequem als OPML-Datei exportieren und in Tiny Tiny RSS importieren. Durch die zahlreichen Einstellungsmöglichkeiten lässt sich der Reader sehr gut individualisieren. Unter anderem ist es möglich Tiny Tiny RSS als Standard-Feedreader für den Firefox einzurichten. Zudem wird Unterstützung für mehrere Benutzer geboten.

Die Oberfläche ist übersichtlich und reagiert flott auf Benutzereingaben. Alles in allem ist Tiny Tiny RSS eine ernsthafte Alternative zum Google Reader.

Zu Tiny Tiny RSS

PHP: cURL als Alternative für allow_url_fopen

26. Mai 2011, 17:18 von Tobi | 9 Kommentare

Gestern bekam ich eine Mail von meinem Webhoster, dass ab sofort die aktuellste PHP-Version 5.3.6 zur Verfügung steht. Die neue Version ist nun direkt als Modul in Apache integriert, anstatt wie früher als CGI-Programm. Dadurch sollen sich spürbare Geschwindigkeitsverbesserungen ergeben. Tatsächlich muss ich sagen, dass mein Blog deutlich schneller lädt, vor allem der Admin-Bereich.

Allerdings wurde aus Sicherheitsgründen auch die Funktion “allow_url_fopen” standardmäßig deaktiviert. Damit funktioniert mein kürzlich vorgestelltes Skript zum RSS-Feeds auslesen leider nicht mehr. Den Code habe ich auch zum Anzeigen der “Hartware News” in der Sidebar ganz unten auf der Startseite verwendet. Also was tun? Zurück auf die alte PHP-Version und die bessere Performance herschenken? Nein, kommt nicht in Frage. Also musste mein Skript angepasst werden. War sogar deutlich einfacher als ich anfangs dachte.

Anstatt des bisherigen Codes zum Laden des RSS-Feeds

$xml =simplexml_load_file('http://www.hartware.net/xml/news.rdf

hier die Lösung mit cURL:

$url = "http://www.hartware.de/xml/news.rdf";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$xml_raw = curl_exec($ch);
curl_close($ch);
$xml = simplexml_load_string($xml_raw)

RSS-Feeds mit PHP auslesen

10. Mai 2011, 16:30 von Tobi | 16 Kommentare

Nachfolgend ein kleiner Codeschnipsel, wie man einen RSS-Feed mit PHP ausliest. Mit dem gleichen Code sind auch die “Hartware News” in der Sidebar ganz unten auf der Startseite meines Blogs realisiert. Die Ausgabe könnt ihr natürlich mit HTML formatieren und an euer Design anpassen.

// Feed einlesen
if( !$xml = simplexml_load_file('http://www.hartware.net/xml/news.rdf') ) {
    die('Fehler beim Einlesen der XML Datei!');
}

// Ausgabe Array
$out = array();

// auszulesende Datensaetze
$i = 5;

// Items vorhanden?
if( !isset($xml->channel[0]->item) ) {
	die('Keine Items vorhanden!');
}

// Items holen
foreach($xml->channel[0]->item as $item) {
	if( $i-- == 0 ) {
		break;
	}

	$out[] = array(
		'title'        => (string) $item->title,
		'description'  => (string) $item->description,
		'link'         => (string) $item->guid,
		'date'         => date('d.m.Y H:i', strtotime((string) $item->pubDate))
	);
}

// Eintraege ausgeben
foreach ($out as $value) {
	echo $value['title'].$value['description'].$value['link'];
}

Linksammlung – PHP Frameworks

5. Februar 2011, 08:52 von Tobi | 8 Kommentare

Nachfolgend eine Linksammlung mit verschiedenen PHP Frameworks. Die bekannteren Frameworks sind fett markiert.

Meine Favoriten sind das “Adventure PHP Framework” und “Kohana”. Beide Frameworks sind relativ schlank, bieten aber trotzdem sehr viele durchdachte Funktionen. Zudem verfügen beide über eine gute Dokumentation und die Entwicklung schreitet stetig voran.

Adminer – schlankes Tool zur Verwaltung von Datenbanken

28. Dezember 2010, 10:38 von Tobi | 2 Kommentare

Zur Administration von MySQL-Datenbanken nutzen die meisten Webentwickler sicherlich phpMyAdmin.
Was tut man aber wenn phpMyAdmin nicht verfügbar ist und man nur ganz schnell eine Änderung an der Datenbank vornehmen muss? Die rund 900 Dateien von phpMyAdmin mit insgesamt 15 MByte auf den Server schieben und installieren?
Eher nicht – und genau hier kommt das PHP-basierende Tool Adminer zum Einsatz.

Adminer besteht aus einer einzelnen PHP-Datei und arbeitet mit MySQL, PostgreSQL, SQLite, MS SQL und Oracle zusammen. Die aktuelle Version 3.1.0 wiegt gerade einmal 292 KByte, kommt mit einer großen Anzahl von Sprachen daher und bietet annähernd dieselbe Funktionalität wie phpMyAdmin. Außerdem ist das Tool frei zur kommerziellen sowie nicht-kommerziellen Verwendung.

Download Adminer 3.1.0

Weiterlesen →

PHP Benchmark-Klasse

31. Oktober 2010, 01:03 von Tobi | Keine Kommentare

In manchen Situationen kann eine kleine Benchmark-Klasse für PHP ganz sinnvoll sein. Beispielsweise kann man damit sehen, wie lange die Laufzeit bestimmter Codeabschnitte ist.
Hier die Klasse:

/**
 * Benchmark-Klasse um Laufzeit von PHP-Code zu überprüfen
 */

class Benchmark {
	private $starttime;
	private $stoptime;
	private $resulttime;

	public function start() {
		$this->starttime = microtime(true);
	}

	public function stop() {
		$this->stoptime = microtime(true);
	}

	public function result() {
		$this->resulttime = $this->stoptime-$this->starttime;
		return $this->resulttime;
	}
}

Hier noch eine kleine Erklärung, wie man die Klasse nutzt:

// Objekt erzeugen
$Benchmark = new Benchmark();

// Startzeit festlegen
$Benchmark->start();

// Endzeit festlegen
$Benchmark->stop();

// Laufzeit mit vier Nachkommastellen ausgeben
echo 'Laufzeit: '.number_format($Benchmark->result(),4).' sec.';

Webseite optimieren – HTTP-Requests reduzieren

3. Januar 2010, 12:32 von Tobi | 4 Kommentare

Viele Webseiten besitzen oft lange Ladezeiten. Das kann mitunter viele Ursachen haben. Ein häufig augtretendes Problem ist aber, dass oft recht viele HTTP-Requests gemacht werden werden. Heutzutage benötigen größere Seiten locker 40 Requests und mehr.

Es muss für jedes Bild, jede JS- und CSS-Datei eine neue HTTP-Verbindung zwischen Browser und Server geöffnet werden. Da viele Browser oft nur 2-4 parallele HTTP-Requests zulassen, ist dies ein deutlicher Flaschenhals.

Um eine Beschleunigung des Ladevorgangs zu erreichen, könnte man nun entweder die Anzahl der parallelen Requests erhöhen oder die Anzahl der benötigten Requests verringern.

Eine recht einfache Lösung, um die Requests bereits als Developer niedrig zu halten, ist die Kombination von CSS- und JavaScript-Dateien. Auch nachträglich lassen sich mit entsprechenden PHP-Tools deutliche Performancezuwächse erziehlen.

Empfehlenswert ist vor allem minify. Es fügt alle CSS- und JavaScript-Dateien zu jeweils einer Datei zusammen. Beispielsweise hat man im Ursprungszustand drei CSS- und sieben JavaScript-Dateien eingebunden. minify macht daraus eine CSS- und eine JavaScript-Datei. Zusätzlich werden unnötige Leerzeichen und Tabs entfernt und die Dateien werden gzip-kodiert mit optimalen HTTP-Cache-Headern gesendet.
Den Download und eine Dokumentation zu dem Tool findet ihr direkt auf der minify-Homepage.