Permalink

0

PHP: Erster und letzter Tag eines Monats

Wer öfters mit Rechnungen zu tun hat, braucht mit Sicherheit irgendwann einmal das erste und letzte Datum eines Monats. Dazu benötigen wir im Grunde nur zwei Funktionen. Zum einen die mktime-Funktion, welche uns einen Timestamp generiert und zum anderen die date-Funktion, welche uns den Timestamp anschaulich darstellt.

<?php
    $firstDayTimestamp =  mktime(0, 0, 0, date('m'), +1, date('y'));
    $lastDayTimestamp = mktime(0, 0, 0, date('m')+1, 0, date('y'));

    $firstDay = date('d.m.Y', $firstDayTimestamp);
    $lastDay = date('d.m.Y', $lastDayTimestamp);

    echo $firstDay . ' - ' . $lastDay;
?>
Permalink

0

Javascript: Alle Zeichen Suchen/Ersetzen

Nach einer etwas längeren Pause möchte ich euch heute zeigen, wie man in Javascript ein beliebiges Zeichen suchen und ersetzen kann. Früher habe ich mich immer aufgeregt, dass man mit Javascript nur das erste Vorkommen eines Zeichens ersetzen kann. So musste ich immer auf eine fertige Funktion aus dem Internet zurückgreifen, was mir nie richtig gefallen hat.

Nun möchte ich euch beide Varianten kurz zeigen. Zuerst die “normale” Replace-Funktion von Javascript, welche nur das erste Vorkommen eines Zeichens ersetzt:

var str = 'Dies ist ein Text.';
var res = str.replace('e', '#');

alert(res);

Die Alert-Box gibt hier folgendes aus:

Di#s ist ein Text.

Und jetzt ändern wir den ersten Parameter der Replace-Funktion, damit alle Zeichen im String ersetzt werden:

var str = 'Dies ist ein Text.';
var res = str.replace(/e/g, '#');

alert(res);

Et voilà, alle Zeichen wurden korrekt ersetzt:

Di#s ist #in T#xt.

Wenn jemand z.B. einen Punkt durch ein Ausrufezeichen ersetzen möchte, muss man den Punkt maskieren. Das heisst einen Backslash vor den Punkt setzen.

var str = 'Dies ist ein Text. Mit zwei Sätzen.';
var res = str.replace(/\./g, '!');

alert(res);
Permalink

0

PHP: Zufallsstring generieren

Heute geht es nicht mehr um Bilder, sondern darum, wie man mit PHP eine Zufallszahl generieren kann. Im Grunde genommen ist es ganz einfach. Man definiert alle möglichen Zeichen und schreibt diese als String in eine Variable. Danach läuft man durch eine for-Schleife und holt sich bei jedem Durchlauf ein zufälliges Zeichen, aus dem vorher definierten String, und setzt diese hintereinander.

<?php
    function random_string($length=50) {
        $characters = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $characters_length = strlen($characters) - 1;
        $rand = '';

        for ($i = 0; $i < $length; $i++) {
            $rand .= $characters[mt_rand(0, $characters_length)];
        }

        return $rand;
    }

    echo random_string();
    echo '<br />';
    echo random_string(6);
?>

Die passende Ausgabe dazu:

UsWtk5LXndpFB2ibeojVwVMLxPQCUSg0vsLLu4t4s0ORyrlEpe
BnUdVE

Die Funktion random_string kann wahlweise mit oder ohne Parameter aufgerufen werden. Wenn sie ohne Parameter aufgerufen wird, ist die Länge ($length) 50.
Vielleicht noch eine Erklärung zu Zeile 8. Wenn man einen String definiert hat, wie z.B. $characters, dann kann man mit einem Index auf jedes Zeichen einzeln zugreifen. Das erste Zeichen hat den Index 0.
Ein Beispiel zu Veranschaulichung:

<?php
    $characters = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

    echo $characters[0];
    echo '<br />';

    $length = strlen($characters) - 1;
    echo $characters[$length];
?>

Ergibt:

1
Z

Zum Schluss noch dies: In der Schleife wird nicht rand() für die Generierung einer Zufallszahl verwendet, sondern mt_rand(). Diese erzeugt laut offiziellen Angaben bessere Zufallszahlen.

Permalink

0

PHP: Grösse einer Bilddatei ermitteln

So, in meinem ersten Beitrag über PHP möchte ich euch gerne zeigen, wie man die Grösse einer Bilddatei ermittelt. Grundsätzlich ist das sehr einfach. Man braucht lediglich eine einzelne Zeile.

Ich zeige euch zuerst einmal die einfachere Variante (wenn es denn überhaupt eine einfachere Variante gibt).

<?php
    $attributes = getimagesize("image.jpg");
    echo 'width: ' . $attributes[0] . '<br />';
    echo 'height: ' . $attributes[1] . '<br />';
    echo 'type: ' . $attributes[2] . '<br />';
    echo 'attr: ' . $attributes[3] . '<br />';
    echo 'mime: ' . $attributes['mime'] . '<br />';
?>

Meine Ausgabe sieht nun so aus:

 width: 1024
height: 768
type: 2
attr: width="1024" height="768"
mime: image/jpeg

Zu beachten ist dabei das Attribut type. Dort steht nicht etwa jpg, sondern die Zahl 2. Diese steht für einen Bildtyp. Hier eine Liste der wichtigsten Bildtypen:

  • 1: GIF
  • 2: JPEG
  • 3: PNG

Weitere Bildtypen findet ihr unter php.net (Vordefinierte Konstanten).

Wie schon angedeutet, war das oben die etwas verständlichere Variante für PHP-Neulinge. Hier die etwas fortgeschrittene Variante mit list, welche die einzelnen Werte gleich in die jeweiligen Variablen schreibt.

<?php
    list($width, $height, $type, $attr) = getimagesize("image.jpg");
    echo 'width: ' . $width . '<br />';
    echo 'height: ' . $height . '<br />';
    echo 'type: ' . $type . '<br />';
    echo 'attr: ' . $attr . '<br />';
?>
Permalink

0

PHP Community ist startbereit

Herzlich willkommen auf phpcommunity.ch. Mein Name ist Raphael Niederer, wohne in der Schweiz und ich bin Webentwickler von Beruf.

Die Domain www.phpcommunity.ch befindet sich seit längerer Zeit in meinem Besitzt. Seither hab ich zwar nichts geschrieben, dafür mehrmals das Theme gewechselt. Schlussendlich entschied ich mich für ein schlichtes, einfaches Design.

Ziel dieses Blogs ist es, anderen, die vielleicht genau das gleiche Problem haben, zu helfen und so in interessante Diskussionen zu kommen und den eigenen Horizont zu erweitern.

Inhaltlich wird sich der Themenbereich hauptsächlich auf Webtechnologien beschränken. Das heisst auf Themen wie PHP, HTML, CSS, JS, MySQL und MSSQL.