Archive for the ‘ Programmieren ’ Category

“Preformance” der Script immer versteckt Anzeigen

Ich habe ab und zu auf wichtigen und lasten intensiven Seiten meistens eine Automatische und konstante Anzeige der wichtigsten Eckdaten. Dadurch kann ich ohne großen Aufwand ständig die Ladezeiten kontrollieren. Der Vorteil liegt klar auf der Hand. Wenn mal wieder ein Anruf kommt ala “Die Seite ist langsam” braucht man nur selber drauf surfen und braucht nicht erstmal sich mit dem Server zu verbinden.

Das ganze am besten in die Datei Packen, die überall geladen wird (index.php, config.php). Und vor allem: Nicht aus versehen 2 mal die Session starten mit session_start(); , weil sonst dieser Fehler kommt:

Warning: Cannot send session cookie – headers already sent

Darum erst kontrollieren und dann folgendes einbauen:

session_start();
function getmicrotime() {
list($msec, $sec) = explode(” “,microtime());
return ($msec + $sec);
}
if($_REQUEST["start_timing"]==”on”){
$_SESSION["get_time"]=”on”;
}
if($_REQUEST["start_timing"]==”off”){
$_SESSION["get_time"]=”off”;
}
if($_SESSION["get_time"]==”on”){
$time_start = getmicrotime();
}

Das am besten ganz oben in die Seite rein laden :) . Dadurch wird die microtime() geholt. Also die Zeit mit Millisekunden, den auf die kommt es oft an.

if($_SESSION["get_time"]==”on”){
$serverid=”SERVERNAME”;
$query=$_SERVER["QUERY_STRING"];
$scriptname=$_SERVER["SCRIPT_NAME"];
$script=$scriptname.”?”.$query;
$time_end = getmicrotime();
$endzeit=$time_end-$time_start;
echo”“;
}

Den Block dann ganz nach unten. Dort erscheint dann die Ausgabe.

Beim Seitenaufruf einfach dann beim nächsten mal index.php?start_timing=on mitgeben und dann könnt Ihr euch zu dem kritischen Script bewegen und müsst nur in den Quelltext gucken um dann unten die Ausgabe zu sehen.

Das ganze lässt sich auch stoppen mit mal index.php?start_timing=off, aber eigentlich ist das egal :) . Wenn die Session verloren geht dann hört die Ausgabe auch auf.

Ersetzten von Zeichen durch andere

Musste in letzter Zeit öfters etwas ersetzten und denke da ist diese Funktion ganz Hilfreich :) :

string foo = “abc”;
foo.Replace(“abc”, “bc”);
// foo ist immer noch abc. Wichtig: Das setzten nicht vergessen!

foo = foo.Replace(“abc”, “bc”);
// foo ist a

Beschreibung: VAR.Replace(ERSETZE_WAS,ERSETZTE_DURCH);
Das ganze ist simpel wie die meisten Funktionen in c#, aber man muss Sie erstmal wissen :)

Für alle PHPler: VAR.Replace(ERSETZE_WAS,ERSETZTE_DURCH); ist wie in PHP str_replace(ERSETZE_WAS,ERSETZTE_DURCH,$VAR); . Denke das kann ein bisschen den Umstieg vereinfachen :)

Kommentare im Quellcode

Ich bin kein großer Fan von Kommentaren, aber manchmal müssen sie einfach sein. Theoretisch kenne ich meine Scripte alle fast Auswendig. Wenn mir einer einen Abschnitt zeigt, dann kann ich sofort die Funktion dazu sagen.

Wer aber schon mal zu Zweit an einem Projekt gearbeitet hat, der wird Kommentare schon ganz gerne haben :) . Wer einmal mit mehr wie 5 Programmierern an einem Projekt gearbeitet hat, der wird es mehr wie Lieben :) . Für mich ist da 3-4 die Magische Grenze bei der man auf Kommentare nicht verzichten sollte. Es ist einfach nicht so leicht alle auf den laufenden zu halten bei allen Funktionen und so ist es halt am Bequemsten und Effektivsten.

Welcher Prozess lauscht auf Port XXXXX

Wenn Ihr wissen wollte welcher Prozess auf einen bestimmten Port lauscht einfach das in Unix eingeben:

lsof -i :{PORT}

Beispiel: lsof -i :80

Weitere Infos: lsof -h

Ich benötige das in letzter Zeit häufiger, weil die meisten Server interne Nameserver bekommen haben und sich untereinander anlauschen dürfen :) . Dadurch lies sich gut abfragen welche Nameserver Software grade auf den Port 53 lauscht :)

Array Ausgabe in schön

Wer von euch öfters mit Arrays arbeitet, wird die Funktion bestimmt zu schätzen wissen:

function print_array($Array)
{
if(!empty($Array)){
echo”<pre>”;
print_r($Array);
echo”</pre>”;
}
}

Im Grunde nicht kompliziertes und auch nicht was ich groß als Meilenstein in der Geschichte ansehe, aber es hat mir oft Arbeit erspart und gehört zu meinen Standard Funktionen

Debian Benutzer einer Gruppe Hinzufügen

Damit könnt Ihr einen Benutzer eine Gruppe hinzufügen ohne das seine Bestehenden überschrieben werden:

:~# usermod BENUTZER -G GRUPPE
Anzeige aller User in einer Gruppe
:~# groups BENUTZER

Einfach und wirksam :)