Joopi
[PHP] Einigen Code zu PHP - Druckversion

+- Joopi (https://forum.hermann-splitthoff.de)
+-- Forum: Wissenswertes (https://forum.hermann-splitthoff.de/forumdisplay.php?fid=1)
+--- Forum: Programmieren (https://forum.hermann-splitthoff.de/forumdisplay.php?fid=6)
+--- Thema: [PHP] Einigen Code zu PHP (/showthread.php?tid=1366)



Einigen Code zu PHP - Joopi - 23-11-2024

PHP - Suchen eines Key in einem Array

Manchmal ist es notwendig die Position eines Wertes in einem Array zu wissen. Dafür gibt es einen php-Befehl: array_search.
Hier mal ein kleines Beispiel:
 
Code:
$MeinArray = array("W0","W1","W2","W3");  $MeinKey = array_search("W2", $MeinArray);  echo "Mein Key = ".$MeinKey; 

Das Ergebnis dieser Abfrage ist dann:

Zitat:Mein Key = 2

PHP - Der erste Key eines Array soll höher als Null sein.

Es kommt auch schon einmal vor, das Array mit einem anderen key anfangen soll. Ein normales Array fängt immer mit einem Key von 0 an. Was wäre aber jetzt, wenn edas programm verlangt, das der Key mit 100 anfangen soll? Hier gibt es auch eine einfache Lösung.

Hier mal ein kleines Beispiel:

Code:
$MeinArray = array("W0","W1","W2","W3");
$MeinNeyesArray = array(100 => "W100","W101","W102","W103"); 
echo "Mein 102 = ".$MeinNeyesArray[102]; 

Das Ergebnis dieser Abfrage ist dann:

Zitat:Mein 102 = W102


PHP - Hier die Beispiele mit der date() - Funktion

Code:
date("d.m.Y");

Heutiges Datum mit jeweils führender Null und vierstellige Jahreszahl so sieht's: aus:

03.01.2023

Auch die Zeit kann man damit darstellen:

Code:
date("h:i:s \h");

Zu bedenken ist dabei, daß es sich um die Zeit des Servers handet. Und so sieht's aus:

Zitat:05:14:13 h


Man kann beides zusammentun, und erhält dann etwas wie:

Code:
date("l jS F Y h:i:s");


Hier das Ergebnis:

Zitat:Tuesday 3rd January 2023 05:14:13


Jetzt noch ein letztes Beispiel, wie man auch andere Daten außer dem heutigen Datum darstellen kann, und sogar auch damit rechnen.

Code:
<?php
    $noon = mktime(12,0,0, date("m"), date("d"), date("Y"));
    $morgen = mktime(0,0,0, date("m"), date("d")+1, date("Y"));
    $letztermonat = mktime(0,0,0, date("m")-1, date("d"), date("Y"));
    $naechstesjahr = mktime(0,0,0, date("m"), date("d"), date("Y")+1);

    echo "Heute Mittag = ".date("d.m.Y h:i:s", $noon)."<br>";
    echo "Morgen = ".date("d.m.Y", $morgen)."<br>";
    echo "Letzer Monat = ".date("d.m.Y", $letztermonat)."<br>";
    echo "Nächstes Jahr = ".date("d.m.Y", $naechstesjahr)."<br>";
?>

Und so sieht das ganze dann aus:

Zitat:Heute Mittag = 03.01.2023 12:00:00
Morgen = 04.01.2023
Letzer Monat = 03.12.2022
Nächstes Jahr = 03.01.2024

PHP - Ein Datum aus der Datenbank richtig darstellen

Wenn man ein Datum in der Datenbank speichert wird es normalerweise in einer Art und Weise gespeicher, daß man es in deutsch nicht wirklich lesen kann. Aus diesem Grund gibt es einen netten php-Befehl, der das Datum in ein Array packt, und von dort wieder ausgelesen werden kann.

Code:
$datum = explode("-",tabellenspalte); 
echo $datum[2].".".$datum[1].".".$datum[0]; 

Das Ganze würde aber auch Sinn machen, daß man es direkt in der SQL-Abfrage ändert. Das können Sie aber in der Rubrik Tipps und Tricks für MySQL nachlesen

PHP - Mit strpos einen String suchen

Sehr oft kommt es vor, daß man überprüfen muss ob ein String in einem anderen String vorhanden ist. Hierfür ist der php-Befehl strpos('meinstring','suchstring'); hilfreich.

Hier mal eine kleines Beispiel:

Code:
<?php
    $meinString = 'abc';
    $findMich  = 'a';
    $pos = strpos($meinString, $findMich);
    if ($pos !== false) {
        echo "Der String '$findMich' wurde im String
        '$meinString' gefunden";
        echo " und befindet sich an Position $pos";
    } else {
        echo "Der String '$findMich' wurde nicht im String
        '$meinString' gefunden";
    }
?>

weitere Beispiele und Erklärungen finden Sie auf der Seite
http://php.net/manual/de/function.strpos.php

Ab und zu muss man aber nach dem letzten Vorkommen eines Zeichens suchen. Dafür gibt es auch einen Befehl, der da wäre: strrpos('meinstring','suchstring')

Beide Befehle kann man noch mit einem dritten Parameter versehen. Der besagt ab welchem Zeichen gesucht werden soll. Wenn dieser Wert negativ ist, dann würde er ab dem Zeichen vom Ende der Zeichenkette anfangen zu suchen.

Code:
$pos = strpos('abcdef abcdef', 'a', 1); // $pos = 7, nicht 0

PHP - Anzahl der Tage eines Monats ermitteln

In letzter Zeit treffe ich immer öfter auf das Problem, wie ich herausfinden kann, wieviel Tage ein bestimmter Monat hat. Dazu gibt es natürlich auch einen Programmierweg. Dieser setzt sich aus den beiden php-Funktionen
mktime und date zusammen. Zuerst muß man das Datum von einem Text in einen Wert, den sogannten Timestamp, umwandeln. Dies sind die Sekunden seit dem 01.01.1970. Damit kann man dann wiederum ermittlen, wieviel Tage der Monat hat. Hier mal das script dazu:

Code:
echo date("t",mktime(0,0,0,2,1,2012));


Und das ergebins davon ist:

Zitat:29

PHP - Grossen Zahl nach Tausendern mit Trennzeichen darstellen

Wenn man eine grosse Zahl wie z.B. 10000000 auf einer Webseite darstellen möchte, wird das Lesen dieser Zahl bei so vielen Nullen etwas schwierig. Hierfür gibt es eine php-Funktion die sich number_fomrat nennt. Sie Syntax ist recht simple.

Code:
echo number_format('10000000', 0, ',', '.');
echo number_format('10000000', 2, ',', '.');
echo number_format('10000000');

So würde das ganze dann fertig aussehen:

Zitat:10.000.000
10.000.000,00
10,000,000


Die erste Zeile ist das Deutsche Zahlenformat. Die zweite Zeile wird mit der Zahl 2 dazu veranlasst noch 2 Stellen hinter dem komma anzuzeigen. Die Dritte Zeile ist das engliche Zahlen Format.