Uninteressantes von einem Anwendungsentwickler aus Linse
 

Beiträge mit dem Tag "PHP"

 

Die neusten Blog Einträge

 
Seite 1 von 4

Datenbankloses Galerie Script [1. Update]

Kategorie "Projekte" Projekte  Verfasst am 30.10.2011 18:03 30.10.2011 18:03  3 Galeriebilder 3 Galeriebilder  4 Kommentare 4 Kommentare  

Als kleines Tagesprojekt habe ich Gestern basierend auf meinem Mini-MVC-Framework ein simples Galerie Script welches komplett ohne Datenbanken auskommt entwickelt.

Man lädt die Bilder einfach direkt von der Kamera in einen Unterordner. Beim ersten Aufruf der Galerie erzeugt das Script automatisch Thumbnails und Listet die Dateien dann auf.

Zur schöneren Darstellung dient eine Portierung der Lightbox 2 auf JQuery.

Übersicht aller GalerienThumbnailsLightbox

Der Quelltext des Script kann bereits unter http://stuff.fiae.ws/php/galleryscript/ angeschaut werden. Bis es ein Download Paket gibt dauert es aber noch ein wenig. Ich bin mir noch nicht sicher ob das Script fehlerfrei ist. Bitte beachte das alle Bestandteile des Quelltextes die von mir entwickelt wurden unter der selben Lizenz stehen wie auch dieser Blog stehen!

Eine Livedemo gibt es unter http://g.anwendungsentwickler.ws/.

Ich würde mich sehr über ein bisschen Kritik freuen.
So kann das Script nur besser werden. ;)

Changelog

Release 1.0 - Diverse Bugfixes (Download)
Die Fehlerausgabe wurde verbessert. Außerdem funktioniert nun auch das Thumbnail Erstellen bei PNG-Dateien. Vielen Dank an Patschi fürs testen. ;)

 

PHP5, Debian Squeeze und $_ENV

Kategorie "Programmieren" Programmieren  Verfasst am 15.06.2011 13:32 15.06.2011 13:32  2 Kommentare 2 Kommentare  

Gerade habe ich php5-cgi auf einem frischen Debian Squeeze System installiert. Das Script was ich damit ausführen wollte, benötigt als Parameter eine Environment Variable. Nur wurde die nicht gesetzt. Das komplette $_ENV Array war leer.

Abhilfe schafft die Option variables_order in der entsprechenden php.ini.

/etc/php5/cli/php.ini

variables_order = "EGPCS" # (ENV, GET, POST, COOKIE, SESSION)

Das "E" am Anfang beschreibt, dass auch $_ENV gefüllt werden soll. Startet man nun das PHP Script funktioniert wieder alles. ;)

Beispielaufruf

network_id="iz-smart" php -f child.php

Innerhalb des Script gibt es dann ein Arrayfeld mit dem Namen "network_id" in $_ENV.

 

Dockstar Keylistener 2.0

Kategorie "Programmieren" Programmieren  Verfasst am 06.03.2011 00:22 06.03.2011 00:22  6 Kommentare 6 Kommentare  

In den letzten Wochen habe ich mich wieder viel mit der Dockstar beschäftigt, und auch die nächste Generation meines Keylisteners entwickelt. Es sind einige neue Features hinzu gekommen.

  • Auswertung der Eingaben pro Zeichen
  • Keycodes können ohne [Enter] ausgelöst werden. (z.B. Einzeltasten)
  • Keycode Untergruppen

In Planung

  • Ausführung von Befehlen mit einem anderen Unix Benutzer

Speziell für die Steuerung eines MPD Servers ist die Auswertung von Einzelzeichen hinzu gekommen. Sprich wenn man das + drückt, soll die Lautstärke um 10% ansteigen, wenn man die 6 drückt soll der Player einen Titel vor spingen, und so weiter.

Weiterhin ist natürlich die Eingabe von mehrstelligen Keycodes mit anschließendem [Enter] möglich.

Wird ein Keycode aufgerufen, der eine Untergruppe enthält, werden alle Keycode Zuordnungen gelöscht und durch die innerhalb des Keycodes definierten ersetzt. Dies kann unendlich oft untereinander passieren. Um wieder eine Ebene höher zu kommen, tippt man einfach 3x [Enter].

Anwendungsbeispiel: Mit "/" schaltet mein Keypad auf die MPD Steuerung um. Dann sind die Tasten alle mit einem Einzelzeichen-Befehl belegt. Normal hört das Keypad nur auf dreistellige Codes die Netzwerkprofile usw umschalten.

Bisher ist der Keylistener und die neue Dokumentation dazu noch als unstable markiert. In den letzten Tagen sind immer mal wieder kleine Fehler aufgetaucht. Wer trotzdem mal testen möchte, oder auch einen Blick in den Quellcode werfen will: http://stuff.fiae.ws/php/dskeylistener/unstable/.

Bin für jegliche Kritik dankbar. Falls es also noch Fehler oder Ähnliches gibt: Nur raus damit. ;)

 

ASCII Tabelle mit PHP generieren

Kategorie "Job" Job  Verfasst am 11.02.2011 14:01 11.02.2011 14:01  0 Kommentare 0 Kommentare  

Letzte Woche habe ich für meinen Dockstar Keylistener eine Klasse gebaut, die eine ASCII Tabelle generiert. In der Tabelle wird dann eine Übersicht aller Befehle angezeigt.

+---+----+----+----+----+----+
|   | a  | b  | c  | d  | e  |
+---+----+----+----+----+----+
| 1 | 1a | 1b | 1c | 1d | 1e |
| 2 | 2a | 2b | 2c | 2d | 2e |
| 3 | 3a | 3b | 3c | 3d | 3e |
| 4 | 4a | 4b | 4c | 4d | 4e |
| 5 | 5a | 5b | 5c | 5d | 5e |
+---+----+----+----+----+----+

Das Script kann in meiner Schnipseldatenbank geladen werden.

Weitere ASCII Klassen
ASCII Tabelle: http://snippets.sim4000.de/show/40/
ASCII Progressbar:  http://snippets.sim4000.de/show/32/
ASCII Text Generator: http://snippets.sim4000.de/show/31/

 

Globaler Datenspeicher

Kategorie "Programmieren" Programmieren  Verfasst am 28.12.2010 00:29 28.12.2010 00:29  1 Kommentar 1 Kommentar  

Mit diesem kleinen PHP Schnipsel kann man einen recht eleganten Datenspeicher für global verfügbare Daten erzeugen. Mit der magischen Methode __callStatic() können Methoden erzeugt werden. In diesen Methoden werden dann die Daten gespeichert.

Schöner wäre dies natürlich noch mit __set() und __get(), allerdings sind diese Methoden im statischen Kontext nicht verfügbar. Und der Umweg über einen Singleton ist mir persönlich für sowas zu aufwändig.

Globals::einbeliebigername( "der Wert" ); // <-- Speichern
Globals::einbeliebigername(); // <-- Auslesen

Die Methode __callStatic() ist leider erst ab PHP 5.3.0 verfügbar. Wenn jemand eine bessere Lösung hat: Nur raus damit. Bin da Vorschlägen offen. ;)

Schnipsel: Globaler Datenspeicher

 

Dockstar Keylistener

Kategorie "Linux" Linux  Verfasst am 18.10.2010 22:20 18.10.2010 22:20  3 Galeriebilder 3 Galeriebilder  6 Kommentare 6 Kommentare  

Wie ich ja schon in einem anderen Beitrag erwähnte, hat mich ein Kumpel auf eine super Idee gebracht. Man schließt einen Ziffernblock an die Dockstar an, und kann über Tastenkombinationen Befehle ausführen.

Das Script welches das ganze realisiert liest /dev/tty0 aus. Dies ermöglicht ein Zeilenweises auslesen. Auch die Backspace-Taste funktioniert problemlos. Man kann also die Eingaben sogar noch korrigieren.

Zusätzlich kann man eine PIN definieren um bestimmte Befehle zu schützen. Bevor man diese PIN nicht eingegeben hat, funktionieren nur Befehle bei denen der Parameter must_authentificate auf false gesetzt ist.

Wurde die PIN richtig eingegeben, blinkt der NumLock drei mal. Das selbe bei der Eingabe des Logout-Codes. Gibt man eine Tastenkombination ein die nicht belegt ist, passiert einfach nichts. Bei einer richtigen Eingabe blinkt der NumLock einmal. Der Befehl wird natürlich auch ausgeführt. ;)

Alle Aktionen werden außerdem in einem Log gespeichert.

Damit das NumLock-Blinken funktioniert braucht man übrigens einen Ziffernblock der keinen eigenen NumLock hat. Ich musste mir extra einen neuen kaufen, da der, der hier jahrelang im Schrank lag leider genau so einer war. Im Media Markt bin ich dann fündig geworden. Es handelt sich dabei um ein Hama Slimline Keypad »SK120«.

Der Verkäufer hat extra die Packung aufgeschnitten und getestet. *Thumbs.up*

Ich hoffe das es hier einige Besucher gibt die meinen Keylistener mal ausprobieren. Würde mich sehr über ein Feedback freuen. ;)

Einrichtung

Die Einrichtung ist eigentlich ganz einfach. Das Archiv muss in einen beliebigen Ordner auf der Dockstar entpackt werden. Die Definition der Befehle finden in der Datei config.inc.php statt.

Der Parameter file definiert das Device-File welches abgehört werden soll. Der Parameter muss im Normalfall aber nicht angepasst werden. Für Login und Logout können jeweils die Codes und eine Mitteilung definiert werden, die dann in das Log geschrieben wird.

Unter bindings werden die eigentlichen Codes definiert. Hier ein Beispiel:

"123" => array( // <-- Der Code
   "command" => "/usr/bin/setleds -num < /dev/tty0", // <-- Num Lock LED ausschalten
   "logmessage" => "Test",
   "must_authentificate" => false, // <-- oder true
)

In Zeile 1 kann ein beliebiger Code definiert werden. Wie lang dieser ist, spielt hier keine Rolle.

Nun noch den Befehl und eine Log-Nachricht definieren und entscheiden, ob man den Befehl auch ausführen darf wenn man nicht angemeldet ist.

Die einzelnen Befehle müssen mit Kommata getrennt werden!

Gestartet wird der Listener über das beiliegende Shellscript. Einfach die Datei runscript.sh mit dem Parameter start, stop oder restart ausführen. Natürlich muss php5-cli installiert sein.

Außerdem sollte der Listener in einem Ordner betrieben werden, in dem er auch Dateien erstellen kann. Beim Start werden ein pid File und die Log-Datei erstellt.

Übrigens: Um einen neuen Befehl hinzuzufügen, brauch man den Listener nicht neu starten!

Eine neue Version ist in Arbeit. Siehe folgenden Beitrag.

 

Nützliche Tools für Informatiker

Kategorie "Projekte" Projekte  Verfasst am 05.09.2010 22:16 05.09.2010 22:16  2 Kommentare 2 Kommentare  

Als kleines Mini-Projekt habe ich auf der Subdomain tools.fiae.ws eine Sammlung von nützlichen Tools zusammen gestellt. Ich persönlich brauche einige dieser Tools sehr oft auf der Arbeit. Vielleicht geht das ja dem einen oder anderen auch so. ;)

Verfügbare Tools:

  • Differenz zwischen zwei Daten
  • Diverse Kodierungsverfahren (urlencode, htmlentities, json_decode, addslashes, base64)
  • Diverse Hashingverfahren (u.a. md4, md5, sha1, sha256, crc32)
  • nslookup
  • ping
  • Einen Passwort Generator
  • Länge eines Strings ermitteln
  • Datetime to Unix Timestamp
  • Whois Abfrage

Zirka 12 Tools stehen bis jetzt noch auf meiner Todo und werden nach und nach dazu kommen. Wenn hier jemand noch eine Idee hat, nur raus damit. ;)

 

[PHP] Mit foreach Arrays manipulieren

Kategorie "Programmieren" Programmieren  Verfasst am 17.08.2010 19:24 17.08.2010 19:24  0 Kommentare 0 Kommentare  

Gerade bei php.net gelesen: Man kann in einer foreach auch mit Referenzierung arbeiten. So kann man auch über eine foreach die Felder eines Arrays verändern.

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
unset($value);
?>

Das Snipsel ist dreister weise von php.net geklaut. :P

 

Farbige Ausgaben auf der Linux Shell mit PHP

Kategorie "Programmieren" Programmieren  Verfasst am 20.06.2010 01:41 20.06.2010 01:41  0 Kommentare 0 Kommentare  

Die folgende Klasse ermöglicht recht simpel die Ausgabe von farbigen Text in einem Linux Terminal. Die Methoden der Klasse sind statisch. Die Erzeugung eines Objektes ist also nicht nötig.

Beispiel:

echo cmd_colors::bold( "black", "any text", "red" );

http://snippets.sim4000.de/show/27/

Have fun. ;)

Seite 1 von 4

Tag Cloud

28c3   3D   ASCII   Akismet   Allgemein   Animation   Apache   Arbeit   Arch Linux   Archos 5   Asterix & Obelix   Audio   Auto   BOINC   Bash   Bitlbee   Blog v2.0   Bluetooth   Bodenwerder   Bouncer (BNC)   Bundestagswahl 09   Bücher   CCC   Chromium   Comics   Computerspiele   Content Managment System   Creative Commons   CyanogenMod   Cybton   DAU Alarm   DLRG   Datenbanken   Datenschutz   Debian   Deutsches Rotes Kreuz   Domains   Drucken   EZFlash Vi   Eclipse   Eingabegeräte   Ekelhaft   Email   Essen   Ethernet   Evernote   ExtJS   Facebook   Fail2Ban   Fanartikel   Feiertage   Fernsehn   Firefox   Flash   Flattr   Fotografie   Fritz!Box   Fun   Fußball   GEZ   GPS   Gameboy Advance   Games   Git   Gnome   Google   Google Android   Google Android Hacking   Google+   Grafiken   Grand Theft Auto IV   HTC   HTC Desire Z   HTML   Handhelds   Handy   Handy Apps   Hardware   Hardware Hacking   Homebrew   ICQ   IRC   ImapFilter   Internet   Internet Explorer   Internet Relay Chat (IRC)   Internetzensur   Java   JavaScript   JeeGeek   Justiz   Kino   Konzert   Kultur   Kumpels   Legend of Zelda   Linux   Linux Mint   MS SQL Server   Marilyn Manson   Microsoft .NET   Minecraft   Mobile   Mozilla   Music Player Daemon (MPD)   Musik   MySQL   NPD   Natur   Netbeans   Netbooks   Netzwerk   Nintendo   Nintendo DS   Nintendo DSi   Nintendo Wii   Notebook   OpenOffice   OpenOffice Impress   OpenWRT   PC Hardware   PHP   Pandora   Papierkorb   Patentrecht   Pidgin   Piratenpartei   Piwik   Politik   Privat   Programmieren   Projekte   PulseAudio   QR-Code   RSS   Rammstein   Root   SD-Karte   SOGo Scalable OpenGroupware   SSH   SVN   Schlüsselband   Schule   Seagate Freeagent Dockstar   Server   Serversicherheit   Sesamstraße   Shellscripting   Shopping   Shortlinker   Skype   Social Networks   Software   Spam   Spenden   Spongebob   Straßenverkehr   Support   TV   Tablets   Technik   Textverarbeitung   Thunderbird   Truecrypt   Twitter   Typo3   UMTS   USA   USB   Ubuntu   Underground Shopping   Urheberrecht   Urlaub   VMWare   VNC   Vereine   Verkaufen   Verstärker   Videorecorder   Viren und andere Schädlinge   Virtual Box   Vorratsdatenspeicherung   WLAN   Wahlen   Webspace   Wehrdienst   Weserbergland   Willkommen   Windows   Windows 7   X11   XFCE   XML   XStylus   Zeitschriften   Zensur   bind9   ffmpeg   netcup   openSSL   r0ket   sim4000.de   vim   Überwachung   Überwachungsstaat   üäx.de   1337