Jeder hat seine eigene Art einen Geldbetrag einzugeben, der eine gibt 11,99 ein, der nächste 11.99. Weiter geht es mit den 1000er Trennzeichen, spätestens, wenn das System auch auf die amerikanische Schreibweise können soll, brauchen wir eine Methode, die jegliche Eingabe in einen gültigen Float-Wert umwandelt, am besten auch noch richtig.

Nach langem hin und her und viel Recherche habe ich mir aus diversen Codefragmenten das hier zusammengebaut und es scheint zu funktionieren: mehr… »

Einer meine Stammblogs, feiert seinen 500ersten Beitrag. Herzlichen Glückwunsch hierzu, am besten seht ihr selbst mal rein: http://www.phphatesme.com/blog/allgemein/das-gewinnspiel-geht-los

Hatte die letzten Tage mal die Zeit gefunden, ein kleines, kurzes Projekt zu starten.
Ziel ist es, die Facebook-funktionialität abzubilden, die man sieht, wenn man einen Link auf seine Pinnwand posten will.
Man erhält eine Auswahl von Vorschaubildern, den Seitentitel, sowie einen kurzen Auszug oder die Seitenbeschreibung.
Bei speziellen Links, z.B. youtube oder flickr, gibts dann Vorschaubilder etc.

Meine kleine Bibliothek ist auf GoogleCode zu finden: http://code.google.com/p/phplinkfetcher/

Einige “Fetcher”-Klassen sind bereits dabei, würde mich aber noch über weitere freuen. Ideen und Verbesserungsvorschläge
in Form von Code oder Kritik ist auch jederzeit erwünscht, einfach hier kommentieren oder den Issue-Tracker von Google nutzen.

Die Meinungen, ob man komplette Objekte ablegen sollte oder nicht, gehen sehr auseinander.
Dagegen spricht zum Beispiel, dass man nicht mehr nach Inhalten in einem Objekt suchen kann oder immer der komplette Text neugeschrieben werden muss, auch wenn man nur eine Zahl ändert. Dafür spricht auch einiges, jedenfalls geht es mir darum, dass ich heute vor einem Problem stand.
mehr… »

PHP Codesniffer ist ein in PHP geschriebens Tool, welches PHP Code analysieren kann und Verstöße gegen Programmierrichtlinien meldet. PHP Tool Integration (PTI) ist ein Eclipseplugin, welches es ermöglicht, den Codesniffer direkt als Codevalidator zu verwenden, wodurch die Fehler direkt während der Entwicklung schon in Form von Warnings oder Errors angezeigt werden.
mehr… »

Wie schonmal erwähnt, habe ich mir eine Applikation gebaut, um nach Ebayauktionen in meiner Nähe zu suchen, mittlerweile ist aus dem Spagetticode eine richtige Klasse geworden. Und weil Crawlen nur bedingt geeignet ist und auch nicht ganz so legal, nutze ich nun die Ebay-Finding-Api. Hier biete ich den kompletten Quelltext dieser an, für Verbesserungvorschläge bin ich jederzeit offen. Bitte nicht zu sehr auf das Englisch in den Kommentaren achten, es war schon recht spät, als ich diese verfasst habe. mehr… »

Konnte es selbst nicht glauben, aber ich war aus irgendeinem Grund sehr lange der Meinung, dass Queries mit “WHERE field = ‘value’” case-sensitiv sind und “WHERE LIKE ‘value’” nicht. Die Annahme ist komplett Falsch und es hängt alleine vom Charset (Collation) des Datenbankfeldes ab. Die meisten Standardcharset haben ein “_ci” am Ende ihres Namens, dies steht für “case-insensitive”. mehr… »

Ich bin relativ häufig auf eBay nach Artikeln in meiner Umgebung am suchen und das in mehreren Kategorien, irgendwann hat es mich genervt, jedes mal, in jeder Kategorie nach Artikeln in x km Umgebung für max. x Euro zu suchen. Also schrieb ich mir eine Art kleinen Crawler, welcher jeweils die erste Seite, des Suchergebnisses, in einer bestimmten Umgebung zusammenführt und in einer Liste ausgibt.

Die URL dafür herauszufinden war nicht allzuschwer, dann ging es an die HTML Quelle auf der Suche nach einem Muster, welches sich für jeden Artikel wiederholt, als ich es fand, machte ich mich daran, die HTML Quelle per PREG_MATCH_ALL zu durchforsten. Den Pattern dazu möchte ich hier kurz Vorstellen.
mehr… »

Wenn möglich, sollte GROUP BY normalerweise verhindert werden. Es sorgt in (fast) jedem Fall für temp-Tables, die den Server unter Umständen recht schnell an seine Grenzen treiben (RAM, CPU). Oft kann man hier auf simple Subselects (oder Derived-Queries) zurückgreifen, um an die gewünschten Infos zu kommen.

Für den Fall, dass ein GROUP BY aber sein muss, das Ergebnis aber keiner Sortierung bedarf, sollte man ein ORDER BY NULL hinzufügen, da MySQL das grupperte Ergebnis sortiert, durch das Sortieren nach NULL, verhindert man dies und kann das Query unter Umständen noch beschleunigen.

SELECT a, COUNT(b) FROM test_table GROUP BY a ORDER BY NULL;

Ich bin vor kurzem auf einen Blog-Artikel gestoßen, den ich hier in eigenen Worten mal im Deutschen wiedergeben will. Wenn ich überlege, wie oft ich mich mit URL-Parsing herumgestritten habe, ist es mir fast schon peinlich zu schreiben, dass ich diese Funktionen bis heute nicht kannte.
mehr… »