+ Antworten
Ergebnis 1 bis 7 von 7
  1. #1
    Registriert seit
    Mar 2008
    Ort
    83379
    Beiträge
    563

    Standard String mit Betriebsstunden

    Hallo,
    ich finde leider keinen Ansatz wie ich meinen String zerlegen kann und in in eine Integer zu schreiben. Vielleicht kann mir jemand helfen.
    PHP-Code:
    02h23m25s 
    Gruß Christian

    Raspi piVCCU IPS5.0 13"Touch LCN UVR1610 UVR16x2 1-Wire WRMS200 Homematic Fronius

  2. #2
    Registriert seit
    Apr 2017
    Ort
    Terra francorum
    Beiträge
    201

    Eventuell hilft das weiter:

    PHP-Code:
    <?php
        
    function splitByChars($str$chars) {
            
    $regex = (is_array($chars) ? implode(''$chars) : $chars);
            
    $regex preg_quote($chars);
            
    $regex addcslashes($chars'=');
            
    $regex '\s*['.$regex.']+\s*';
            return 
    preg_split('='.$regex.'=u'$str);
        }
     
        
    $string '02h23m25s';

        
    $array splitByChars($string,'hms');

        
    $stunden intval ($array[0]);
        
    $minuten intval($array[1]);
        
    $sekunden intval($array[2]);

        echo 
    $stunden"\n";
        echo 
    $minuten"\n";
        echo 
    $sekunden"\n";

    ?>

  3. #3
    Registriert seit
    Mar 2008
    Ort
    83379
    Beiträge
    563

    Ok. Vielen vielen Dank.
    Gruß Christian

    Raspi piVCCU IPS5.0 13"Touch LCN UVR1610 UVR16x2 1-Wire WRMS200 Homematic Fronius

  4. #4
    Registriert seit
    Mar 2008
    Ort
    83379
    Beiträge
    563

    Noch ein Problem

    Wie kann ich diesen String prüfen ob er so aufgebaut ist?
    PHP-Code:
    $$h$$m$$s 
    oder so
    PHP-Code:
    $$$h$$m$$s 
    Gruß Christian

    Raspi piVCCU IPS5.0 13"Touch LCN UVR1610 UVR16x2 1-Wire WRMS200 Homematic Fronius

  5. #5
    Registriert seit
    Apr 2017
    Ort
    Terra francorum
    Beiträge
    201

    Für die Funktion ist die Anzahl der Stellen unwichtig.
    Der String wird an den der Funktion übergebenen Zeichen (h,m und s) geteilt.

    Code:
    $string = '1402h23m25s';
    führt zum Ergebnis
    Code:
    Stunden: 1402
    Minuten: 23
    Sekunden: 25
    Geändert von Najuka (16.02.20 um 21:43 Uhr)

  6. #6
    Registriert seit
    Mar 2008
    Ort
    83379
    Beiträge
    563

    Das habe ich verstanden.
    Nur muss ich den gelieferten String zuerst überprüfen ob er meine Information (Betriebszeit) enthält. Da müsste ich prüfen ob die letzte Stelle ein "s" die 4.letze Stelle ein "m" und die 7.letze Stelle ein "h" ist. Ich zähle von hinten weil die Stunden können auch 3-stellig sein.
    Gruß Christian

    Raspi piVCCU IPS5.0 13"Touch LCN UVR1610 UVR16x2 1-Wire WRMS200 Homematic Fronius

  7. #7
    Registriert seit
    May 2005
    Beiträge
    2,336

    Nicht zählen, das prüft die RegEx selber
    zb. so
    PHP-Code:
    <?php
    $result
    =array();
    $subject='1402h23m25s';
    if (
    preg_match('/(\d+)h(\d+)m(\d+)s$/m'$subject,$result)) {
        
    # Successful match
        
    $std=$result[1];
        
    $min=$result[2];
        
    $sec=$result[3];
        print 
    "$std Stunden, $min Minuten, $sec Sekunden \n<br>";

    } else {
        print 
    "Ungültig\n<br>";
    }

Ähnliche Themen

  1. 30 Zeichen String Auslesen und auf x String Variablen aufsplitten
    Von Mahlsdorfer im Forum Skripte, PHP, SQL
    Antworten: 3
    Letzter Beitrag: 11.01.18, 08:50
  2. Zähler (Betriebsstunden)
    Von steiner im Forum Anleitungen / Nützliche PHP Skripte
    Antworten: 19
    Letzter Beitrag: 09.07.08, 07:54
  3. Betriebsstunden - Erfassung
    Von Ralf L. im Forum Skripte, PHP, SQL
    Antworten: 36
    Letzter Beitrag: 20.02.08, 16:03
  4. Heizung Betriebsstunden
    Von steiner im Forum Skripte, PHP, SQL
    Antworten: 19
    Letzter Beitrag: 23.10.07, 04:19