Uninteressantes von einem Anwendungsentwickler aus Linse
 

Beiträge in der Kategorie "Programmieren"

 
Seite 3 von 4

[PHP] Text mit HTML Tags umschießen

Kategorie "Programmieren" Programmieren  Verfasst am 24.03.2010 14:58 24.03.2010 14:58  0 Kommentare 0 Kommentare  

Möchte man einen Teil einer Zeichenkette mit HTML Tags umschließen, ist man bei der PHP Funktion preg_replace() richtig.

Starting Something...
-> Action 1
..................
-> Action 2
..................
Done.

Nun sollen alle Zeilen die mit einem "->" beginnen, mit einer anderen Farbe markiert weden. Das geht mit folgender Regex:

<?php
   echo preg_replace( "/\-\>(.*)\\n/", "<span>--&gt;$1</span>\n", $string );
?>

Alles was sich in zwischen "-->" und "\n" befindet, wird in die Variable $1 geschrieben. Die Variable wird dann zwischen das <span>-Tag gesetzt.

Alles weitere kann nun via CSS erledigt werden.

 

img-Tag & base64 - Bilder direkt in den HTML Code einbinden

Kategorie "Programmieren" Programmieren  Verfasst am 08.02.2010 15:32 08.02.2010 15:32  4 Kommentare 4 Kommentare  

Es gibt die Möglichkeit Bilder direkt in ein HTML Dokument einzubinden. Also ohne Bilderdatei.

Beispiel (Server):

$file = base64_encode(file_get_contents( "file.png" ));
echo "<img src='data:image/gif;base64,".$file."' alt='base64 Test'>";

Beispiel (Client):
base64 Test [...] Weiterlesen...

 

[PHP] Das letzte Zeichen einer Zeichenkette

Kategorie "Programmieren" Programmieren  Verfasst am 07.01.2010 11:05 07.01.2010 11:05  4 Kommentare 4 Kommentare  

Ich wusste noch gar nicht das substr() auch negative Werte kann. So kann man sich auch das letzte Zeichen einer Zeichenkette ganz einfach liefern lassen.

Beispiel:

<?php
   $string = "lorem ipsum";
   $last_char = substr($string, -1);                // return "m";
   $last_char = substr($string, -2, 1);             // return "u";
?>

Echt praktisch. Und es steht sogar in der PHP Manual gleich im ersten Codeblock... *rolleyes*

 

[PHP] Objekt klonen

Kategorie "Programmieren" Programmieren  Verfasst am 07.01.2010 10:59 07.01.2010 10:59  0 Kommentare 0 Kommentare  

Wenn man in PHP ein Object Klonen will, kann man das Schlüsselwort clone verwenden.

Beispiel:

<?php
   $object = new foo();
   $object->set_something( "moooo" )
   $copy = clone $object;
   $copy->set_secound_something( "maeeeehhh" );
?>

So kann man sich eine ganze Menge Zeilen sparen, wenn man zwei Objekte einer Klasse benötigt, wo viele Eigenschaften gleich sind.

 

[PHP] Funktionen die Arrays zurück geben und list()

Kategorie "Programmieren" Programmieren  Verfasst am 18.12.2009 13:20 18.12.2009 13:20  1 Kommentar 1 Kommentar  

Eine sehr praktische Funktion ist list(), wenn man eine Funktion/Methode hat, die ein Array zurück gibt.

Mit der Funktion ist es möglich, Array Felder in normale Variablen zu packen. Dies hilft bei der Übersicht ungemein, da man nicht mit dem Array-Index arbeiten muss, sondern einen richtigen Namen als Variable hat.

<?php
   /**
    * $image_width  -> $return[0]
    * $image_height -> $return[1]
    */
   list($image_width, $image_height) = getimagesize( "foo.png" );

   /**
    * $la  -> "la"
    * $le  -> "le"
    * $lu  -> "lu"
    */
   list($la, $le, $lu) = array( "la", "le", "lu" );
?>

Ist schon ein Recht alter Hut. Aber vielleicht gibt es ja den einen oder anderen, dem das noch unbekannt ist. ;)

 

validMail() & validUrl() aktualisiert

Kategorie "Programmieren" Programmieren  Verfasst am 25.11.2009 12:19 25.11.2009 12:19  0 Kommentare 0 Kommentare  

Ich habe nun endlich mal daran gedacht meine Funktionen zur Überprüfung von Email Adressen und Web URLs zu aktualisieren. Sprich Umlaute, rein numerische Domains, usw erlauben.

Ich hoffe das es nun richtig Funktioniert.
Have fun. ;)

 

IP/Subnetz Rechner + Wetter Script

Kategorie "Programmieren" Programmieren  Verfasst am 26.10.2009 22:13 26.10.2009 22:13  1 Kommentar 1 Kommentar  

Auf meiner Seite sim4000.de gibt es zwei neue Tutorials.

Das Wetter Script kommt hier im Blog auf der linken Seite zum Einsatz. Der IP/Subnetz Rechner ist schon etwas länger in dem Artikel über Subnetting zu sehen. Nun habe ich noch den Quellcode veröffentlicht.

Have fun!

 

Supergeheime Seite

Kategorie "Programmieren" Programmieren  Verfasst am 22.09.2009 10:02 22.09.2009 10:02  1 Kommentar 1 Kommentar  

Die Logs vom meinem Apache laufen mit irgendwelchen lächerlichen Botanfragen über, die nach phpmyadmin, Webmailern und so weiter suchen.

Damit beim Aufruf der Server IP nun auch was zu sehen ist und die Bots ein bissl beschäftigt sind, habe ich mal eine kleine Spaßseite gebastelt. Egal was man aufzurufen versucht, man landet immer auf der Seite. mod_rewrite FTW. ;)

Ihr könnt ja mal versuchen, ob Ihr was anderes aufgerufen bekommt, als diese schwarze Seite. :)
Have fun. ^^

 

Verbindung zu einem MySQL Server via JDBC

Kategorie "Programmieren" Programmieren  Verfasst am 26.06.2009 23:52 26.06.2009 23:52  1 Galeriebild 1 Galeriebild  0 Kommentare 0 Kommentare  

Die Netbeans IDE besitzt einen echt schicken Datenbank Explorer, mit dem man sich die Struktur von Tabellen in einer Sidebar anzeigen lassen und über die IDE SQL Querys absetzen kann.

Nun wollte ich diese Funktion bei einem frisch aufgesetzten MySQL Server nutzen. Und es ging nicht! Es kam folgende Meldung.

Netbeans Meldung

Die Lösung für dieses Problem befand sich in der Konfigurationsdatei des MySQL Servers. Normalerweise die /etc/my.cf.

Dort muss die Option skip-networking im [mysqld]-Bereich auskommentiert werden. Diese Option verhindert, dass nach einer frischen Installation der MySQL Server auf einen TCP/IP Port horcht. Eine Sicherheitsmaßnahme also.

Also die Option nur rausnehmen, wenn der Server fertig abgesichert ist, oder hinter einer Firewall hängt.

 

MySQL - Doppelte Datensätze abfangen

Kategorie "Programmieren" Programmieren  Verfasst am 01.06.2009 01:17 01.06.2009 01:17  0 Kommentare 0 Kommentare  

Manchmal hat man das Problem beim speichern von Einstellungen in der Datenbank, dass vorher überprüft werden muss, ob es diesen Datensatz nicht schon gibt.

Genau vor so einem Problem stand ich bei meiner Rechteverwaltung. Die Rechte werden dort mit Checkboxen gesetzt. Nun wollte ich bearbeiten und neu erstellen aber nicht getrennt Programmieren, sondern auf einem Rutsch.

Das bedeutet, man müsste erst prüfen, ob nicht schon ein Datensatz existiert. Es gibt dort zwei Möglichkeiten, ein weiteres Query zu vermeiden.
 

Möglichkeit 1: ON DUPLICATE KEY
Die erste, und eigentlich auch konventionelle Lösung ist die ON DUPLICATE KEY Klausel.

INSERT INTO counter 
   (`visitor`, `date`,`hits`)
VALUES
   ('127.0.0.1','2009-06-01', 1)
ON DUPLICATE KEY UPDATE
   hits=hits+1;

Dabei werden die Schlüssel der Tabelle überprüft. Ist bei diesem Beispiel die IP Adresse 127.0.0.1 schon vorhanden, wird der hits-Counter um eins hochgezählt.
 

Möglichkeit 2: Subquery
Die zweite Möglichkeit ist mit einem doppelten Subquery zu überprüfen, ob es den Datensatz schon gibt.

INSERT INTO table
   (name)
   SELECT
      distinct('lala')
   FROM 
      adressliste
   WHERE
      NOT EXISTS (
         select name from adressliste where name = 'lala'
      )

Bei dem insert wird mit einem "dummy"-Select der zukünftige Inhalt des Datensatzes ('lala') "ausgelesen". Dieser Inhalt wird unter der Bedingung "Du bist nicht schon in der Tabelle enthalten", welches mit einem Sub-Subquery überprüft wird, an das insert übergeben.

Die Prüfung passiert dort mit der NOT EXISTS Klausel. Alles was also nicht bei dieser Abfrage raus kommt, wird in die Tabelle eingefügt.

Möglichkeit Nr. 2 ist allerdings nur bei Tabellen die keine Schlüssel definiert haben sinnvoll. (Jeder der eine Tabelle ohne Schlüssel erstellt gehört verprügelt.)

Seite 3 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   EZFlash Vi   Eclipse   Eingabegeräte   Ekelhaft   Email   Essen   Ethernet   Evernote   Facebook   Fanartikel   Feiertage   Fernsehn   Firefox   Flash   Flattr   Fotografie   Fritz!Box   Fun   Fußball   GEZ   GPS   Gameboy Advance   Games   Gnome   Google   Google Android   Google Android Hacking   Google+   Grafiken   Grand Theft Auto IV   HTC   HTC Desire Z   HTML   Handhelds   Handy   Handy Apps   Hardware   Homebrew   ICQ   IRC   ImapFilter   Internet   Internet Explorer   Internet Relay Chat (IRC)   Internetzensur   Java   JavaScript   JeeGeek   Justiz   Kino   Konzert   Kultur   Kumpels   Legend of Zelda   Linux   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   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   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