:::: MENU ::::

WebDevExp

Meine Erfahrungen in der Webentwicklerwelt

Posts Tagged / php

  • Nov 21 / 2012
  • 0
php

Bildmanipulation: Seitenverhältnisse beibehalten

An sich eine einfache Aufgabe, aber da ich immer wieder damit kollidiere und mich jedes mal neu reindenken darf (ja ich weiß, es gibt Libs dafür, aber diese sind nicht in jedem Projekt verfügbar), dachte ich mir, den Code jetzt einfach mal hier festzuhalten.

In diesem speziellen Fall, geht es darum, dass ein hochgeladen wird und die Seitenverhältnisse einer „Box“ angepasst werden müssen.
Es gibt zwei Faktoren, die das ein wenig komplizieren.
1. Das Bild ist in Pixeln definiert, die Box in mm, die „einfache Variante“ (maxWidth und maxHeight als Input) geht also nicht
2. Die „Box“ darf weder breiter noch höher, nur schmaler oder flacher werden

$imageRatio = $imageWidth / $imageHeight; //pixel
$elementRatio = $element->getWidth() / $element->getHeight(); //mm
if ($imageRatio == $elementRatio) {
    continue;
} elseif (($imageRatio > 1 && $elementRatio > 1) || ($imageRatio < 1 && $elementRatio < 1)) {
    //landscape+landscape OR portrait+portrait
    if ($imageRatio > $elementRatio) {
        $newHeight = $element->getWidth() / $imageRatio;
    } else {
        $newWidth = $element->getHeight() * $imageRatio;
    }
} elseif ($imageRatio >= 1 && $elementRatio <= 1) {
    //landscape/square + portrait/square
    $newHeight = $element->getWidth() / $imageRatio;
} elseif ($imageRatio <= 1 && $elementRatio >= 1) {
    //portrait/square + landscape/square
    $newWidth = $element->getHeight() * $imageRatio;
}
$element->setWidth($newWidth);
$element->setHeight($newHeight);
  • Aug 01 / 2010
  • 3
php

HTML zu PDF umwandeln, endlich „einfach“ (Plattformunabhängig)

Mal wieder auf der Suche nach einer sinnvollen HTML2PDF Lösung, bin ich auf wkhtmltopdf gestoßen.

Das Tool nutzt Webkit im internen Backend und kann sogar CSS3 rendern. Die Installation unter MaxOSX und Linux ist absolut simpel: runterladen, ablegen, fertig. Unter Windows wird hier noch ein Installationsprozess durchgeführt, über den ich aktuell leider nichts sagen kann (bisher nicht getestet).

Um das Tool auf einer Webseite zu nutzen, habe ich mir ne kleine Klasse geschrieben, die HTML-Code als Input akzeptiert und mir den Pfad der fertigen PDF-Datei zurückliefert.

Continue Reading

  • Jun 28 / 2010
  • 2
php

Iterator oder IteratorAggregated Interface nutzen?

PHP bietet das Iterator Interface an, um Objekte direkt via foreach zu iterieren.

class MyClass implements Interator {
  private $array;
}
 
$obj = new MyClass();
foreach($obj as $key =&gt; $val){
  ...
}

Continue Reading

  • Jan 22 / 2010
  • 3
mysql, php

Objekte serialisiert in einer MySQL Datenbank ablegen

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.
Continue Reading

  • Nov 22 / 2009
  • 6
php

Klasse zum Crawlen von Ebayauktionen (Ebay-Api)

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. Continue Reading

  • Okt 11 / 2009
  • 0
php

Ebay regex

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.
Continue Reading

  • Jun 15 / 2009
  • 2
Linux allgemein, Webserver

APC statt eaccelerator oder XCache

Lange plagten wir uns mit dem Problem, dass die Webserver nach ein paar Tagen Betrieb 500er warfen (500 – Internal Server Error). Dies ging dann ein paar Sekunden so (nur 2-3) und danach lief alles wieder glatt. Das ganze passierte wahllos mal auf diesem, mal auf einem anderen Webserver. Continue Reading

  • Okt 25 / 2008
  • 0
php, Webserver

PHP 5.2.6 und eAccelerator 0.9.5.3

WIr nutzen diese Konstellation schon recht lange, doch seit ein paar Wochen, meint ein Teil der Webserver plötzlich nur noch 500er Fehler auszuspucken. Nach einem stoppen des Lighty, killen der übrigen php-cgi Prozesse, leeren des eAccelerator Caches und starten des Lighty, lief alles wieder einwandfrei.

Continue Reading