dr.byte
Goto Top

Wert aus txt auslesen und in ein bestimmtes feld setzen

Hallo,

ich benutze folgenden Text um bei einem bestimmten Wert einen bestimmten Begriff in ein bestimmtes Feld zu setzen:
Die daten liegen in einer txt datei unter idaten:


function GetIFoto(AProposedValues) {
if (MatchText("%jpg%", IDaten)) { return "Foto"; }
else if (MatchText("%mpg%", IDaten)) { return "Film"; }
else return False;
}

funtioniert eiwandfrei.


wenn ich aber einen Wert auslesen will z.b. die länge des Films


sieht in dem Textfile so aus:

Duration : 2 h 0 min

wie würde dann die Funktion für:

function GetIRuntime setzten ?

Er soll nicht mit match arbeiten und eintragen sondern er so aus "2 h 0 min" dann "2:00:00" und in neinem bestimmten Feld eintragen ....

ICh hoffen ich bin hier richtig und ihr könnt mir helfen ...

Vielen Dank ...

Content-Key: 340396

Url: https://administrator.de/contentid/340396

Printed on: April 19, 2024 at 15:04 o'clock

Member: em-pie
em-pie Jun 12, 2017 at 19:04:39 (UTC)
Goto Top
Moin,

naja, du kannst ja nach dem Wert/ der Zeile, in der der Begriff "Duration" enthalten ist, suchen.
Diese Zeile verwendest du,
  • und spliitest (str_split()) mittels des Trennzeichens ":"
  • oder aber du liest erst ab dem 11 Zeichen, von links beginnend ein.
Anschließend mit dem Rest, den du noch hast (also z.B. 2 h 2 min), ersetzt (str_replace()) du einfach das " h " und das " min " (in beiden Fällen das Leerzeichen mitnehmen) durch ein ":".

Du müsstets nur prüfen/ abfangen, dass deine Minuten ebenfalls zweistellig verwendet werden, wenn dies <10 sind...

Gruß
em-pie
Mitglied: 133417
133417 Jun 12, 2017, updated at Jun 13, 2017 at 09:42:30 (UTC)
Goto Top
Mögliche Variante:
<?PHP
$content = file_get_contents('file.txt');  
if (preg_match("/Duration\s*:\s*((\d+)\s*h)?\s*((\d+)\s*min)?/is",$content,$match)){  
    $hours = ($match[2] != '') ? str_pad($match[2],2,'0',STR_PAD_LEFT) : '00';  
    $minutes = ($match[4] != '') ? str_pad($match[4],2,'0',STR_PAD_LEFT) : '00';  
    echo "$hours:$minutes:00";  
}
?>
Gruß

p.s. Wo holst du die Funktion MatchText() her?? In PHP gibts die jedenfalls nicht, da gibts nur preg_match() /preg_match_all().