Artikel in der Rubrik 'PHP'
Ja, es stimmt! Auf vielen Webservern weltweit läuft zwar PHP, aber bei über der Hälfte eben noch das alte PHP 4. Und das, obwohl es die Version 5 seit Juli 2004 gibt und mittlerweile schon PHP 6 in den Startlöchern steht.
Aber woran liegt das?
Als ersten Grund kann man nennen, dass viele Webentwickler ihre Software nicht komplett auf PHP 5 umgestellt haben, sondern diese weiterhin mit PHP 4 kompatibel waren. Viele PHP Nutzer sahen sich deswegen nicht gezwungen, ihr System auf die neue Version von PHP umzustellen. Getreu dem Motto „Never change a running system“. Als Beispiel für weit verbreitete PHP-Anwendungen kann man phpmyadmin, Coppermine, Wordpress, Drupal und sogar Typo3 nennen. Sie alle funktionierten sehr lange oder immer noch mit PHP 4. » Read more after the jump →
Für ein aktuelles Webprojekt wollte ich einen bestimmten RSS Feed einer URL auslesen und den Feed auf meinem Projekt anzeigen lassen. Da selber coden natürlich immer viel Arbeit ist sucht man erstmal nach verfügbaren Scripts, die diese Aufgabe erledigen. Dabei bin ich auf MagpieRSS gestoßen, mit dem man das Ganze kinderleicht lösen kann.
Installation von Magpie RSS
Als aller Erstes natürlich MagpieRSS auf der offiziellen Website downloaden, entpacken und in einem extra Ordner “magpierss” oder ähnliches in dein Webverzeichnis schieben. Das Script muss dann natürlich in dein aktuelles PHP Script eingebunden werden, um verwendet werden zu können. Das geschieht mit einem einfachen include-Befehl möglichst am Anfang deiner PHP-Datei.
Nun kann MagpieRSS überall in deinem Script genutzt werden und der RSS Feed angezeigt werden.
Anzeigen und Auslesen von RSS Feeds
Ein RSS Feed wird aufgerufen durch die Funktion fetch_rss.
Die URL http://web-manual.de/feed dann einfach durch die gewünschte ersetzen. Nach dem Aufrufen des Feeds mit fetch_rss erfolgt die Ausgabe mit einer Schleife. Die Schleife wird benötigt da es natürlich mehrere Beiträge sind und nicht nur einer.
Mit $item['title'] gibt man den Titel der einzelnen Artikel aus, mit $item['link'] den genauen Link zum eingelesenen Artikel. Natürlich stehen in dem Array $item noch wesentlich mehr Felder, die ausgelesen werden können.
Man sollte bei fremden Feeds generell nie den kompletten Artikel auslesen und auf seiner eigenen Homepage anzeigen lassen. So ein Vorgehen wird schnell als Content-Klau verpönt; wenn dann ausdrücklich um Erlaubnis fragen.
Gestaltung von MagpieRSS
Natürlich muss die Ausgabe noch mit HTML gestaltet werden. Meine Lösung dafür sieht so aus
Dieses Beispiel gibt eine Liste mit dem Titel und einer kurzen Vorschau des Artikels aus. Der Titel ist dabei verlinkt zum Original Beitrag.
In Webentwicklungs Foren tauchen regelmäßig Beiträge auf bei denen gefragt wird, wie man Strings und/oder Stringvariablen miteinander verbindet. Und auch in Google wird oft nach diesem Problem gesucht. Deshalb gibts hier einfach mal eine kurze Erklärung.
Strings und Variablen werden in PHP ganz einfach mit dem Punkt Operator verbunden.
Natürlich können auch Strings und Variablen miteinander verknüpft werden.
Als erfahrener Programmierer ist es oft unverständlich, warum eigentlich bei einem so leichten Problem sooft in Foren nachgefragt wird. Das Problem liegt vielleicht daran, dass gerade Anfänger die PHP Dokumentation noch nicht zu nutzen wissen und oftmals losprogrammieren ohne sich mit einem PHP Tutorial alle Grundlagen angeeignet zu haben.
Und auch Umsteiger, die schon andere Programmiersprachen beherrschen tun sich bei PHP schwer. Das liegt daran, dass in PHP total untypisch mit dem Punkt-Operator verknüpft wird. In den meisten anderen, herkömmlichen Sprachen werden Strings und Stringvariablen mit dem Plus Operator + verknüpft.
Immer wieder verirren sich Besucher auf meinen Blog, die nach “php string länge”, “string länge berechnen” oder ähnlichen Begriffen bei Google gesucht haben. Die Länge eines Strings kann man ganz einfach mit der Funktion strlen berechnen.
Nicht wenige Webentwickler benötigen für bestimmte Funktionen ihrer Website die Länge eines Strings. Insbesonders natürlich bei Benutzereingaben, da man hier nie weiss wie lang diese sein werden. Praktisch vorstellbar is beispielsweise ein Berechnen der Länge eines eingegebenen Passworts bei der Registrierung. (z.B. das Passwort muss mindestens 6 Zeichen lang sein)
Hier nun das Beispiel für die Funktionsweise der PHP String Funktion strlen
Die Funktion ist wirklich einfach. Sie kennt nur einen Parameter, hierbei wird der String übergeben dessen Länge bestimmt werden soll. Es wird jedes Zeichen gezählt, also wie hier im Beispiel zählt auch der Bindestrich und der Punkt zur Länge hinzu. web-manual.de sind also 13 Zeichen insgesamt.
In diesem Beispiel zeigt sich, das auch ein Leerzeichen oder Tabulator als genau ein Zeichen gilt. Das Vergessen oftmals viele und wundern sich dann warum die Länge nicht stimmt.
Nach dem Teilen von Strings in Teil 3.1 kommen wir nun zu Funktionen, mit denen man Strings verändern kann.
strtolower und strtoupper
strtolower setzt den kompletten String - sprich alle Buchstaben - in Kleinbuchstaben um. Oft verwendet wird diese Funktion, um beispielsweise aus einem Titel eine suchmaschinenfreundliche URL zu generieren. Natürlich muss noch mehr verändert werden wie z.B. Leerzeichen in Bindestriche verwandeln oder ähnliches. strtoupper ist das genaue Gegenteil und setzt folglich alle Buchstaben in Großbuchstaben um.
ucfirst und ucwords
Mit ucfirst wird das erste Zeichen eines Strings in einen Großbuchstaben verwandelt. Das erste Zeichen muss aber ein gültiger Buchstabe sein, andere Zeichen oder Zahlen werden nicht umgewandelt. Bei ucwords hingegen werden die Anfangsbuchstaben aller Wörter in einen Großbuchstaben verwandelt. Ein neues Wort ist immer nach einem Whitespace wie z.B. Leerzeichen oder Tabulator.
substr_replace
Die Funktion ist ähnlich zu substr, nur wird hier kein bestimmter Teil zurückgegeben sondern durch einen anderen Teil ersetzt. Dazu wird im ersten Parameter der Funktion erstmal der String übergeben und im zweiten der Text der danach eingesetzt wird. Mit den anderen zwei Parametern wird der genaue Teil des Strings bestimmt, der ersetzt werden soll. Dazu wird im dritter Parameter die Startposition angegeben; dabei ist zu beachten das die 0 das erste Zeichen repräsentiert, 1 das zweite usw. Im vierten Parameter wird dann die Länge übergeben wieviel Zeichen ausgehend vom Startwert angezeigt werden sollen.
Achtung: Wenn für den Startparameter negative Werte eingesetzt werden, wird vom Ende des Strings aus nach links gezählt. Wenn die Länge negativ ist, wird auch vom Ende des Strings nach links gezählt und bis zu der Position der String ersetzt.
str_replace
Auch str_replace ersetzt einen Teil des Strings durch einen anderen Text. Im Gegensatz zu substr_replace wird allerdings nicht die genaue Zeichenposition angegeben, bei der der String ersetzt werden soll. Stattdessen wird nach einen bestimmten Wort gesucht und genau dieses durch ein anderes ersetzt.
Im ersten Parameter wird daher der String übergeben, nachdem gesucht werden soll, im zweiten der String durch den das Suchwort ersetzt wird und im dritten Parameter dann der komplette String, auf dem das Ersetzen angewendet werden soll. siehe Beispiel
Es ist möglich, für die Parameter auch ein Array zu setzten. Folglich wird je ein Wert der Arrays zum Suchen und Ersetzen verwendet. Man kann sich so vorstellen; für jeden Wert im Array wird die Funktion einmal aufgerufen oder man schaut sich einfach das Beispiel an ![]()
Ich hoffe die Beispiele sprechen für sich, es ist wirklich nicht so einfach die volle Funktionsweise jeder Funktion vollkommen verständlich zu erklären. Am besten kopiert man den Quelltext, spielt ein wenig mit den Parametern herum falls einem eine Funktion nocht nicht völlig klar ist.

