PHP

Bild von externer URL speichern

Hin und wieder hat man das Bedürfnis oder aber die Aufgabe, Bilder von bekannten URLs auf dem eigenen Rechner/Server zu speichern. Mit PHP gelingt dies relativ einfach und bequem. Folgende Utility-Klasse zeigt, wie es gehen könnte.

class Utility {
	static public function getRemoteImage($url, $fileName) {
		// Hole das Bild von der URL
		$imageData = file_get_contents($url);

		// Erzeuge eine neue Datei auf dem Webserver
		// Das Zielverzeichnis muss für den Webserver-Benutzer beschreibbar sein
		$fileHandle = fopen($fileName, "w");
	    fwrite($fileHandle, $imageData);
	    fclose($fileHandle);
	}
}

Continue reading

CSV-Dateien mit variablen Header umsortieren

Ich stand diese Woche vor der Aufgabe, eine CSV-Datei einzulesen. Eigentlich ein triviales Problem. Knackpunkt dabei war allerdings, dass die CSV-Datei einen variablen Header besitzt. Ich wollte aus der CSV-Datei nur eine bestimmte Teilmenge extrahieren, die über alle CSV-Dateien gleich ist. Nur die Position der Information (Spalten) konnte variieren. Die Spaltennamen sind in alle CSV-Headern identisch. Anbei ein paar Codeschnipsel in PHP, wie ich das Problem gelöst habe.
Continue reading

eAccerlerator mit mehr als 32MB SharedMemory betreiben

Wenn der Apache den Start verweigert, man das eAccelerator-Modul für PHP benutzt und mit mehr als 32MB Speicher betreiben möchte, kann es sein, dass der Kernel eben nicht mehr als die 32MB Shared Memory zulässt.

Diesen Umstand kann man im laufenden System folgendermaßen ändern:

echo "67108864" > /proc/sys/kernel/shmmax

Damit die Einstellungen bei ggfs. notwendigen Serverneustart nachwievor vorhanden sind, lohnt es sich, die Einstellungen fest im System speichern. Das geht dann so:

# Konfiguration speichern
echo "kernel.shmmax=67108864" >> /etc/sysctl.conf
# ggfs. die Konfiguration neu einlesen:
sysctl -p