Jul
29.

Mit PHP ein Array in eine Textdatei speichern

Moin Moin,

ab und an kommt man in die Verlegenheit ohne großen Aufwand ein Array für die spätere Nutzung zu speichern (meinetwegen als Backup), der
wohl einfachste Weg ist es das komplette Array in ein Textfile zu packen. Das geht dann am schönsten wenn man es serialisiert. Wie das ganze
grob aussieht haben wir mal kurz festgehalten. Sicherlich kann man da noch viel verbessern (insbesondere das Errorhandling). Aber mit diesem Weg
ist es relativ gut möglich die Daten im Anschluss wieder zu lesen und zu verwenden.


 $input = array('XX', 'XX', 'LIMESPACE', 'WEB');

 $data = serialize($input);

 // wo sollen die Daten gespeichert werden.
 $file = "C:/temp/accounts-backup.dat";

 $handle = fopen($file, "w+");

 // können wir denn auch dort schreiben ?
 if(! is_writable($file)) {
 return false;
 }

 // hat es geklappt ?
 $result = fwrite($handle, $accounts);

 if ($result === FALSE) {
 return false;
 } else {
 return true;
 }

Und nun das Array wieder auslesen :

$filename = "C:/temp/accounts-backup.dat";

// auslesen der Datei
$handle = fopen ($filename, "r");
$contents = fread ($handle, filesize ($filename));
fclose ($handle);

// ausgeben und wieder ein array draus machen
print_r(unserialize($contents));
Wir freuen uns über Bookmarks ! Diese Icons verlinken auf Bookmark Dienste bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • MisterWong
  • Y!GG
  • Alltagz
  • Webnews
  • Hype
Jul
27.

PHP Scripte mit XDebug profilen (messen)

Guten Morgen und einen schönen Montag wünsche ich,

heute wollen wir uns kurz mit der Analyse von PHP Anwendungen befassen, wir hatten euch ja letztens bereits kurz erklärt wie der XDebug installiert (Installation XDebug mit Zend Server CE) wird, man kann mit diesem selbstverständlich noch eine Menge mehr unternehmen als nur auf Fehlersuche zu gehen.

Viele Beispiele was geht, findet ihr in dieser Präsentation (.pdf) : XDebug Features

Mich hat insbesondere die Möglichkeit des Profilen interessiert, endlich mal wissen was in meinen Scripten zu langen Laufzeiten führt, um das Feature nutzen zu können muss man nur nach der Installation in der php.ini ein paar Einstellungen für den Debug vornehmen :

xdebug.profiler_enable=1
xdebug.profiler_output_dir="C:\Server\Xampp\apache\logs\"

Im Anschluss (wenn ihr euren Webserver rebootet habt) findet sich im logs Directory ein CacheGrind File (natürlich nur wenn ihr auch eine PHP Anwendung auf eurem System ausgeführt habt). Dieses lässt sich nun wunderbar mit einem kleinen Tool auswerten.

Wir empfehlen  :

Unter Windows sieht so eine Cachgerind Datei dann wie folgt aus :

Windows Cachegrind

Und nun viel Freude beim Debuggen und Profilen !

Wir freuen uns über Bookmarks ! Diese Icons verlinken auf Bookmark Dienste bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • MisterWong
  • Y!GG
  • Alltagz
  • Webnews
  • Hype
Jul
25.

Die beliebten Links der Woche

Guten Morgen ,

Tadaa, die Zeit wieder reif für unsere Linkliste.

Die Links der Woche

Unsere lieblings Links aus dem Bereich PHP für diese Woche

  • Brandon Savage erklärt wie man sich mit PHP eine sehr nette Registry Klasse bauen kann (wenn es das Framework nicht hat..)
  • Ein kostenloses PHP Script für das Betreiben einer Knowledgebase wird im Webresource-Depot vorgestellt.

Unsere lieblings Links aus dem Bereich Javascript & CSS

  • Max Design hat eine klasse Präsentation zum Thema CSS auf die Beine gestellt, wer lernen möchte, nur zu !
  • Wordpress + JQuery ein wunderschönes Paar – die 15 schönsten Plugins findet ihr hier.
  • Im Think Vitamin Blog wird Step by Step das Erstellen einer schönen Portfolio -Page erläutert.
  • Wer sich immer mal daran versuchen wollte ein eigenes JQuery Plugin zu entwickeln -> bei Sitepoint wird dir geholfen.

Unsere lieblings Links aus allen anderen Bereichen !

Nur ein Link , dafür aber mein persönliches Highlight diese Woche. Ein sehr gelungener Beitrag (leider in Englisch) mit dem Titel “10 Things I Hate About Software Development“.

Wir freuen uns über Bookmarks ! Diese Icons verlinken auf Bookmark Dienste bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • MisterWong
  • Y!GG
  • Alltagz
  • Webnews
  • Hype
Jul
24.

Acer Revo R3600 als Server: Bind9

aspire-revo-u018
Creative Commons License photo credit: nDevilTV

Um uns bei mehreren Entwicklungsprojekten und VHosts auf dem Apache nicht mit der hosts rumärgern zu müssen, richten wir einfach Bind9 auf dem Revo ein. Da hier einige Klippen zu umschiffen sind, geben wir Euch hier ein kurzes Tutorial an die Hand.

Voraussetzungen: FritzBox als Router und rudimentäre Netzwerkkenntisse.

Installation Bind9

  1. Herunterladen des Installations-Archives von www.isc.org
  2. Entpacken und aufrufen von BINDInstall.exe
  3. Ein Passwort für des Service-Account angeben
  4. Install anklicken

BINDInstaller

BIND9 Service konfigurieren

  1. Konsole aufrufen
  2. In das Verzeichnis “C:\Windows\system32\dns\bin” wechseln
  3. Mit “rndc-confgen.exe -a” eine Key-Datei erzeugen
  4. Im Verzeichnis “C:\Windows\system32\dns\etc” zwei Dateien anlegen und jeweils den Secret auf der Key-Datei eintragen:

rndc.conf

key “rndc-key” {
algorithm hmac-md5;
secret “Hier der eigene Hash“;
};

options {
default-key “rndc-key”;
default-server 127.0.0.1;
default-port 953;
};

named.conf

key “rndc-key” {
algorithm hmac-md5;
secret “Hier der eigene Hash“;
};

controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { “rndc-key”; };
};

Nun kann der Dienst “ISC BIND” gestartet und die Datei named.conf noch um einige Optionen und die Zonen erweitert werden:

An den Anfang der Datei setzen wir folgendes:

acl localnet { 192.168.1.0/24; };
options {
directory “C:\Windows\system32\dns\etc”;
allow-query { localnet; };
};

  • acl: Wir definieren ein Netzwerk
  • directory: Unser Arbeitsverzeichnis, in dem auch die Zonen-Dateien liegen
  • allow-query: Erlaubt dem oben definierten Netzwerk Zugriff auf unseren DNS

Hintendran kommen unsere Zonen (In diesem Fall nutzen wir drei Zonen, die über die TLD unterschieden werden):

zone “syslords.dev” {
notify no;
type master;
file “syslords.dev.zone”;
};
zone “syslords.test” {
notify no;
type master;
file “syslords.test.zone”;
};
zone “syslords.prod” {
notify no;
type master;
file “syslords.prod.zone”;
};

  • notify: Es wird nichts und niemand Informiert
  • type: Unser DNS ist der master
  • file: Der Name der Zonen-Datei

Hier jetzt eine Zonendatei:

$TTL 86400
$ORIGIN syslords.dev.
@       IN      SOA     srvsls01.fritz.box. contact.syslords.com. (
2009072216        ; Serial
28800           ; Refresh
7200            ; Retry
864000          ; Expire
86400           ; Min TTL
)

NS      srvsls01.fritz.box.             ; Rechnername des Nameserver
www        IN    A    192.168.1.25

  • Hier ist eigentlich nur die Serial wichtig, die bei einer Änderung gepflegt werden muss. Wir haben uns für das Format JJJJMMDDNN entschieden

Um von den Clients erreichbar zu sein, haben wir noch folgende Änderungen vorgenommen

  1. Port 53 in der Firewall des Server öffnen
  2. Auf den Clients und dem Server die IP unseres Servers als Secondary-DNS eintragen
  3. “DNS-Suffix für diese Verbindung”: fritz.box
  4. “Adressen dieser Verbindung in DNS registrieren”
  5. “DNS-Suffix dieser Verbindung in DNS-Registrierung verwenden”

Hier noch zwei wichtige Kommandos für die Konsole:

  1. ipconfig /flushdns – Löscht den DNS-Cache bei Änderungen
  2. C:\Windows\system32\dns\bin\rndc.exe reload – Lädt ie named.conf neu

Wie immer hoffen wir, nichts wichtiges vergessen zu haben und für Fragen sind wir immer offen  ;-)

Wir freuen uns über Bookmarks ! Diese Icons verlinken auf Bookmark Dienste bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • MisterWong
  • Y!GG
  • Alltagz
  • Webnews
  • Hype
Jul
20.

Zend Studio for Eclipse – Xdebug

Abgelegt in Software, Tutorials | 1 Kommentar

Moin Moin,

wer mal versucht hat den XDebug unter Zend Studio for Eclipse (Windows) zum Laufen zu bekommen, wird festgestellt haben : Obwohl das Studio auf PDT aufbaut, es gibt die Option nicht ;)

Wie kann man nun den XDebug einbinden ?

Im Directory des Studios : “C:\Programme\Zend\Zend Studio for Eclipse – 6.0.1\plugins” gibt es 2 Dateien :

  • com.zend.php.debug.core_6.0.1.v20080601.jar
  • com.zend.php.debug.ui_6.0.1.v20080601.jar

Diese verschiebt ihr in einen anderen Ordner zum Beispiel “inaktiv”.

Anschließend ruft ihr das Zend Studio von der Commandline auf (ZendStudio.exe -clean) Ab jetzt habt ihr in der Konfiguration auch die Möglichkeit den XDebug im Zend Studio zu benutzen.

Zend Studio for Eclipse mit XDebug

Wie man XDebug nun richtig einrichtet wird euch hier eklärt : Konfiguration Xdebug (PDF!)

Wir freuen uns über Bookmarks ! Diese Icons verlinken auf Bookmark Dienste bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • MisterWong
  • Y!GG
  • Alltagz
  • Webnews
  • Hype