Beiträge mit dem Stichwort ‘PHP’

PHP: Probleme mit Datei Upload unter Windows

Veröffentlicht am 9. November 2010 um 08:45 by Fabian Martin Permalink

Nachdem ich vor ein paar Tagen, im Rahmen des „Developers Shame Day“, in meiner Giftgrube gewühlt  und ein Code Schnipsel aus vergangenen Tagen veröffentlicht habe, kommt der heutige Beitrag wieder aus der Richtung „Was mache ich, wenn … ?“.

Während den Arbeiten an einem Projekt, testen wir die Seiten nicht nur mit verschiedenen Browsern, sondern auch mit verschiedenen Server Betriebssystemen. Wir wollen so gewährleisten, dass der Kunde einen Server seiner Wahl nutzen kann, ohne auf ein Feature verzichten zu müssen.

Ein Kollege sprach mich, nach solch einem Testlauf, darauf an, dass er Probleme mit Dateien hat, die er mittels Datei Upload in sein Windows Testsystem lädt. Beim Zugriff auf diese Dateien, wird er von Windows darauf aufmerksam gemacht, das er nicht die benötigten Rechte dazu besitzt.
weiterlesen »

Ich schäme mich … am Developers Shame Day

Veröffentlicht am 3. November 2010 um 12:45 by Fabian Martin Permalink

Jeder Programmierer hat mal klein angefangen und dabei Code produziert, für den er sich im Nachhinein schämt, und von dem er hofft, dass er nie an die Öffentlichkeit gerät.

Doch heute ist alles anders.

Der PHP Hacker ist aus der Versenkung zurückgekehrt und hat alle Entwickler dazu aufgerufen ihren schlimmsten Code Schnipsel am Developers Shame Day zu veröffentlichen. Neueinsteiger sollen sehen, dass auch die Profis von heute mal klein angefangen haben und es keine Schande ist, wenn der Code am Ende doch nur Murks ist.

Ich habe mich also daran gemacht und meine Archive der letzten 10 Jahre durchforstet um das richtige zu finden. Und nach langem Suchen habe ich nun endlich den passenden Code Schnipsel gefunden, bei dem ich alles falsch gemacht habe, was man nur falsch machen kann. Er ist aus dem Jahr 2001 und gehört zu einem meiner ersten PHP Projekte.
weiterlesen »

PDT: Compare/Merge Editor funktioniert nicht mehr

Veröffentlicht am 17. Oktober 2010 um 22:17 by Fabian Martin Permalink

Als gewissenhafte Entwickler, die wir alle sind, wollen wir natürlich nur das Beste nutzen und haben deswegen immer die aktuellste Version unserer IDE installiert … ein Fehler!  Seit dem 24. September ist das erste Service Release von Eclipse Helios auf den Update Servern verfügbar und macht etwas kaputt, auf das ich persönlich nicht verzichten möchte … den Compare Editor.

Der Fehler ist mit bereits kurz nachdem Update aufgefallen, aber ich hatte angenommen, dass mal wieder mein Workspace zerstört ist und es genügt einen neuen anzulegen.  Leider weit gefehlt, denn der Fehler steckt im Code und wird, wie es scheint, erst mit dem nächsten Service Release behoben.

Wer nicht so lang warten möchte, kann sich den aktuellen Milestone installieren. Folgt der kleinen Anleitung, und ihr habt wieder einen funktionierenden Compare Editor.

  1. Wählt im Hilfe Menü den Punkt Install New Software… aus (1)
  2. Fügt über den Button Add (2) eine neue Update Seite hinzu
  3. Gebt der Seite einen Namen (3) (z.B. “2.2 Milestones”) und fügt als Location (4) http://download.eclipse.org/tools/pdt/updates/2.2/milestones/ ein
  4. Bestätigt eure Eingaben mit OK (5) und wartet bis die Update Seite geladen wurden
  5. Wählt jetzt den Punkt PHP Development Tools (PDT) Runtime Feature aus und vollzieht, nach dem klick auf Next, das übliche Installations Procedere

Der Compare Editor sollte jetzt wieder normal funktionieren. Wenn ihr nicht jede Milestone Version installieren wollt, solltet ihr die Update Seite in den Einstellungen wieder deaktivieren.

Links:

PHP: Warum count() im Schleifenkopf langsam ist und … [UPDATE]

Veröffentlicht am 16. August 2010 um 23:41 by Fabian Martin Permalink

In den Kommentaren des ursprünglichen Artikels wurde zu Recht beanstandet, das der Vergleich zwischen for und foreach, so wie er dort beschrieben war, nicht richtig ist, da bei foreach Werte abgefragt werden, die bei den for Schleifen fehlten. Dieser korrigierte Artikel, behebt den Fehler.

Der Artikel wurde zusätzlich mit einem Kommentar zum Thema Optimierung versehen.

Vor ein paar Tagen berichtete ragtek davon, dass count() im Schleifenkopf unschön und ineffizient ist. Beidem kann ich nur zustimmen.

Aber warum ist das so?

Die Erklärung dazu ist einfach. Bei jedem Durchlauf wird count() aufgerufen und darüber die Anzahl der Elemente ermittelt. Überprüfen kann man das Verhalten mit einem kleinen Code Snippet:

<?php
class ArrayTest implements Countable
{
	public $intCountCall = 0;

	public function count()
	{
		$this->intCountCall++;
		return 100000;
	}
}

$objArrayTest = new ArrayTest();
for ($intI = 0; $intI < count($objArrayTest); $intI++)
{

}
echo($objArrayTest->intCountCall . " Aufrufe von count()");

Ergebnis:

100001 Aufrufe von count()

Bei näherer Betrachtung scheint es also logisch, dass diese Variante langsamer ist, als wenn man count() einmal aufruft und den Wert zwischenspeichert.

Ist foreach schneller?
In den Kommentaren wird erwähnt, dass die Verwendung von for und count() unnötig ist, da es ja foreach gibt. Aber ist es auch schneller?
weiterlesen »

PHP Gangsta feiert Geburtstag

Veröffentlicht am 12. Juli 2010 um 16:45 by Fabian Martin Permalink

Sind die meisten Blogs zum Thema PHP sehr kurzweilig und mit wenigen Beiträgen  gefüllt, hat es Michael mit seinem Blog in nur einem Jahr auf über 140 Artikel gebracht.

Zu diesem Ergebnis möchte ich ihm herzlichst gratulieren und hoffe die Zahl der Artikel und Wettbewerbe werden bis zum zweiten Geburtstag weiter in diesem Tempo wachsen.

Wer gratulieren und etwas abgreifen möchte, sollte nicht zögern und dort einen Kommentar hinterlassen. Ihr nehmt dann automatisch an einer Verlosung mit vielen attraktiven Preisen teil. Vergesst aber nicht, dort im Blog zu stöbern. Ihr werdet dabei sicher einige interessante Artikel entdecken.