Stringfunktionen bei Arrays?

Admi

Erfahrenes Mitglied
Ich hab da ein kleines Problem und komme nicht weiter.

ich lese eine Datei ein, in der Abschnitte durch bestimmte Zeichen getrennt wurden. Diese schreibe ich in Arrays.

Nun möchte ich auf dieses Array Stringfunktionen anwenden, um an bestimmte Teilstrings aus den Abschnittstrings zu kommen.

Folgender Code soll mich an die Versionsnummer bringen, die immer in Abschnitt 1 (also an Arrayposition 0) hinter dem Begriff "Version" steht. Tut sie aber leider nicht. Weiß jemand Rat? Es handelt sich um Dateien mit Binärdaten.

PHP:
$datei = 'irgendeinedatei';
if(file_exists($datei))
  { echo "Die Datei $datei ist existent <br /><br />"; } else { echo "Die Datei $datei ist nicht existent <br /><br />"; }
  
  $fp = fopen($datei,"r");
  $wert = fgets($fp,filesize($datei));

  $ohnesimikolon = str_replace(';', ':', $wert);
  $ohnebeidezeichen = str_replace(':', ':', $ohnesimikolon);
  $array = explode(':', $ohnebeidezeichen);
   
  for($x = 0; $x < count($array); $x++)
    {
    $abschnitt[$x] = $array[$x];
    } 

  $version = substr("$abschnitt[0]", strrpos("$abschnitt[0]", "Version"), 4);
  echo $version;
  fclose($fp);
  
?>
 
Nur so eine Kopflösung, wieso ersetzt du nicht einfach den String "Version" durch einen Leerstring, dann bleibt die Versionsnummer übrig (eventuelle Leerzeichen mit Trim() entfernen). Wie gesagt ist nur so ein Gedanke, andere Varianten müsste ich erst austesten.


Der Doc!
 
Aus irgendeinem Grund wird dieses Teilarray nur bis Stringposition 15 gelesen? Könnte es daran liegen, dass es Binärdaten sind?

Bei deiner Lösung kriege ich zwar die Version, aber zwischen den Zahlen sind merkwürdige Vierecke? Das muss irgendein Zeichensatzproblem sein.
 
Geht eventuell mit preg_replace mit einem Suchstring der alles außer Zahlen und den "." ersetzt. Hab momentan keinen zur Hand, vielleicht findet sich jemand der einen hat?


Der Doc!
 
Zurück