Scriptease - Codesnippets

Einfacher PHP Passwortgenerator

Es ist mal wieder Zeit für eine kleine Spielerei. Ich habe euch ein Script zur Erstellung eines einfachen Passwortgenerators in PHP zur Verfügung gestellt. Vielleicht kann der ein oder andere von euch das Script gebrauchen um eigene Passwörter zu generieren.

Über Feedback oder Verbesserungsvorschläge würde ich mich wie immer äusserst freuen!

<?php
  function random_pwd($length){
    // Festlegung der verfügbaren Buchstaben, Zahlen und Sonderzeichen
    $specialChars = array('!','@','#','$','%','&','*','(',')','_','-','+','=','[',']','<','>','?','/');
    $chars = array_merge(range('a','z'), range('A','Z'), range(0,9), $specialChars);
    // Einzelne Buchstaben entfernen
    unset($chars[array_search('i',$chars)]);
    unset($chars[array_search('l',$chars)]);
    unset($chars[array_search('o',$chars)]);
    unset($chars[array_search('I',$chars)]);
    unset($chars[array_search('O',$chars)]);
    unset($chars[array_search('Q',$chars)]);
    $chars = array_values($chars);
    // Array mischen
    shuffle($chars);
    // Array beschneiden
    $pwd = array_slice($chars,0,$length);
    // Rückgabewert als String
    return implode('',$pwd);
  }
  // Ausgabe des Passwortes mit einer Länge von 10 Stellen
  echo random_pwd(10);
?>
Hinzugefügt von Pixelaner in PHP | 2 Kommentare
Tags: , , ,

PHP Array mit call-by-reference

Um den Inhalt eines Array in einer Schleife effektiv zu ändern, müssen wir das Array mit der “call-by-reference”-Methode ansprechen:

$arr = array(1, 2, 3, 4);
foreach ($arr as &$value)
{
    $value = $value * 2;
}
// $arr ist nun Array( [0]=>2, [1]=>4, [2]=>6, [3]=>8 )
unset($value); // Das letzte Element der Referenz löschen

Durch das “&” sprechen wir die Referenz an und nicht die Variable (Array). Dadurch können wir den Wert direkt in einem Array ändern und umgehen somit den Kopiervorgang.

Diese Methode können wir auch bei Funktionen anwenden und bietet sich hervoragend bei großen Arrays an.

Der Gegensatz dazu ist die “call-by-value”-Methode. Sie kopiert den übergebenen Wert einfach und somit wird der Speicher nicht effektiv genutzt.

Hinzugefügt von Sven in PHP | Keine Kommentare
Tags: , , , , ,

PHP Skript optimieren

Um das PHP-Skript zu optimieren und die Geschwindigkeit zu maximieren, muss man einige Dinge beachten.

Tipp 1: Zählschleifen
Bei einer Zählschleife niemals ein Array zählen lassen in der Bedingung. Beispiel:

for($i = 0; $i <= count($array); $i++)
{
    /** Anweisung **/
}

Dieses Beispiel führt dazu das bei jedem Durchlauf die Länge des Arrays ermittelt wird. Vorschlag:

$length = count($array);
for($i = 0; $i <= $length; $i++)
{
    /** Anweisung **/
}

Beim durchlaufen eines Arrays wird sowieso empfohlen eine foreach-Schleife und keine for-Schleife zu benutzen.

Tipp 2: Der Speicher
Um den Speicher nicht unnötig zu überfüllen und ihn aufzublähen, sollte man Variablen und Arrays löschen, wenn man weiß, dass man sie nicht mehr braucht.

unset($array);

Tipp 3: Die Ausgabe

Wenn man in PHP etwas ausgeben lassen will, muss man nicht den Verkettungsoperator benutzen:

/** UNNÖTIG **/
$string = 'ein Test';
echo 'Das ist '.$string.' von mir'; // Das ist ein Test von mir

/** BESSER **/
echo 'Das ist ',$string,' von mir'; // Das ist ein Test von mir

Durch den Verkettungsoperator (.) wird die gesamte Zeile ersteinmal in ein String kompiliert. Das heißt, dass wir einen unnötigen Schritt haben. Mit dem Komma teilen wir dem Skript einfach mit, dass er es einfach ausgeben soll. Achtung, das Komma kann man nur benutzen wenn man den echo Befehl in einfachen Anführungszeichen ausgibt.

Hinzugefügt von Sven in PHP | Keine Kommentare
Tags: , ,

PHP Funktion zur Prozentrechnung

Einfache Funktion um einen Prozentsatz auszugeben. Die Berechnung kann auch über ein Formular erzeugt werden.

<?php
function prozent($wert, $prozent) {
  return $wert * $prozent / 100;
}
?>

Ausgabe:

<?php
echo prozent(100,25);
?>

Der Wert 100 ist der Ursprungswert von dem der Prozentsatz 25 berechnet werden soll.

Hinzugefügt von Pixelaner in PHP | Keine Kommentare
Tags: , ,

Datei zeilenweise durch PHP einlesen und ausgeben

Durch das folgende Script kann eine Datei zum Datenimport zeilenweise eingelesen und ausgegeben werden. In unserem Beispiel geben wir den Inhalt der CSV Datei example.csv aus:

$filename = 'example.csv';
$file = file($filename);
for($i=0 ; $i<count($file) ; $i++) {
  echo $file[$i];
  echo '<br />';
}
Hinzugefügt von Pixelaner in PHP | Keine Kommentare
Tags: , ,