Hallo,
ich bin relativ neu in der Sprache PHP und sitze grad an einer Aufgabe fest, wo ich aus iner Text-Datei bzw. *.dat Datei einzelne Zeilen auslesen muss aber die an Bestimmten stellen Ein untermenü haben, das Collapse und Expandable sein muss. Die Stellen sind der Jeweilige wochentag und die Uhrzeit.
Hier mein Code was ich bis jetzt geschafft habe und anbi liegt die dat datei.
Alles anzeigen
Ich hoffe ihr könnt mir helfen und danke euch schonmal im vorraus.
sebl25
ich bin relativ neu in der Sprache PHP und sitze grad an einer Aufgabe fest, wo ich aus iner Text-Datei bzw. *.dat Datei einzelne Zeilen auslesen muss aber die an Bestimmten stellen Ein untermenü haben, das Collapse und Expandable sein muss. Die Stellen sind der Jeweilige wochentag und die Uhrzeit.
Hier mein Code was ich bis jetzt geschafft habe und anbi liegt die dat datei.
PHP-Quellcode
- <?php
- /*
- * Ein Array zur Aufnahme der Dateien
- */
- $datei_arr=array();
- $verzeichnis = "../archivierung/";
- /*
- * Die Funktion liest ein Verzeichnis incl. Unterverzeichnisse aus.
- * - $verzeichnis - das soll ausgelesen werden
- * - &$arr - hier wird das Array (s.o.) Übergeben. Das & ist eine Referenz auf die Variable,
- * die hier durch direkt von der Funktion verändert wird.
- */
- function dir_rekursiv($verzeichnis, &$arr){
- /*
- * Diese Dateitypen sollen eingelesen werden.
- */
- //$datei_typ_arr=array(0 => ".dat", 1 => ".php", 2 => ".xml", 3 => ".txt");
- $datei_typ_arr=array(0 => ".dat", 1 => ".txt");
- $handle = opendir($verzeichnis);
- while ($datei =@readdir($handle)){
- if ($datei != "." && $datei != ".." ){
- if (is_dir($verzeichnis.$datei)){
- dir_rekursiv($verzeichnis.$datei."/", &$arr);
- }else{
- /*
- * strrchr(string $string, string $zeichen) gibt den Text nach dem letzten Vorkommen von $zeichen incl. $zeichen zurück.
- */
- $ext=strrchr($verzeichnis.$datei, ".");
- /*
- * Wenn $ext in dem Dateitypen-Array vorkommt, Datei im Array ablegen.
- */
- if(in_array($ext, $datei_typ_arr)){
- $arr[]=$datei;
- }
- }
- }
- }
- @closedir($handle);
- }
- /*
- * Funktionsaufruf mit Verzeichnisangabe und Variable
- */
- dir_rekursiv($verzeichnis ,$datei_arr);
- /*
- * usort($array, Callback-Funktion) sortiert das Array.
- */
- usort ($datei_arr, 'cmp');
- ?>
- <?php
- /*
- * Dateinamen in der Selectbox ausgeben.
- */
- foreach($datei_arr as $datei){
- echo "<option value=\"$datei\">$datei</option>";
- }
- ?>
- <?php
- /*
- * Mit ini_set(PARAMETER) werden Fehler/Hinweise angezeigt.
- */
- ini_set('error_reporting', E_ALL|E_STRICT);
- ini_set('display_errors', 'On');
- /*
- * Parameter der Funktion:
- * - ein oder mehrere Suchbegriffe
- * - einen Dateinamen
- */
- function output($textdatei){
- /*
- * Wenn kein Dateiname eingegeben ist, Array mit Meldung füllen und beenden.
- */
- if(strlen(trim($textdatei))==0){
- $gef_zeilen_arr[]="Wählen sie einen Dateinamen";
- return $gef_zeilen_arr;
- }
- $text_zeilen_arr=array();
- $f = file($textdatei);
- /*
- * Wenn die Textdatei nicht geöffnet werden konnte (z.B. fehlende Rechte), Array mit Meldung füllen und beenden.
- */
- if(!$f){
- $gef_zeilen_arr[]="Datei: ".$textdatei;
- $gef_zeilen_arr[]="Die Datei ".$textdatei." konnte nicht geöffnet werden";
- return $gef_zeilen_arr;
- }
- echo("<b> ".$textdatei." <br><br></b>");
- /* $i=0;
- while($i<count($f)){//while 1
- $i++;
- }
- echo($i); */
- /* foreach($f AS $ausgabe) {
- // echo($ausgabe);
- $zerlegen = (preg_split("/[;!]+/",$ausgabe));
- foreach($ausgabe as $line)
- {
- if(strpos($line, $search) || strpos($line, $search1) || strpos($line, $search2) || strpos($line, $search3) ||
- strpos($line, $search4) || strpos($line, $search5) || strpos($line, $search6) !== false)
- echo(@"<br><b>$zerlegen[1]</b>") ;
- }
- echo("$zerlegen[0]");
- } */
- // What to look for
- $search = 'Montag';
- $search1 = 'Dienstag';
- $search2 = 'Mittwoch';
- $search3 = 'Donnerstag';
- $search4 = 'Freitag';
- $search5 = 'Samstag';
- $search6 = 'Sonntag';
- // Read from file
- $lines = file($textdatei);
- foreach($lines as $line)
- {
- // Check if the line contains the string we're looking for, and print if it does
- $zerlegen = (preg_split("/[-;!]+/",$line));
- if(strpos($line, $search) || strpos($line, $search1) || strpos($line, $search2) || strpos($line, $search3) ||
- strpos($line, $search4) || strpos($line, $search5) || strpos($line, $search6) !== false)
- echo(@"<br><b>$zerlegen[1]</b>");
- }
- @fclose($f);
- }
- /*
- * Ist das Formular gesendet, gibt die Funktion ein Array zurück, deshalb mit foreach ausgeben.
- */
- if(isset($_POST['seldatei'])){
- $ergeb = output($_POST['seldatei']);
- }
- ?>
Ich hoffe ihr könnt mir helfen und danke euch schonmal im vorraus.
sebl25
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von sebl25 ()