PHP Anfänger: Daten einlesen, vergleichen, Ergebnis speichern.

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Hallo 3DMax.

    Über die Beteiligungsrate wundere ich mich auch ein wenig. Hatte ich etwas reger in Erinnerung.
    Zu Deinem abschließenden Edit:
    Kann sein, das ich mit Handarbeit schon einen Teil der Arbeit erledigt hätte. Nur, würde ich das tun, könnte ich das auch für die Zukunft immer so halten. Programmiersprachen haben ja den Vorteil, die Erledigung wiederkehrende Aufgaben zu ermöglichen. Es ist zwar am Anfang etwas haarig, den Einstig zu finden, aber danach wird es immer besser.
    Momentan arbeite ich gerade daran, die Konzeption der Arrays besser zu verstehen.

    Mit diesem Code:
    PHP-Code:
    <?php
    $SuchNam 
    'Suchnamen.txt';
    $SuchNamRest 'Suchnamenrest.txt';
    $TzO 'TabzuOrdnung.txt'
    $KTzO 'KeineTabzuOrdnung.txt';
    $SN file ($SuchNam);
    $dir 'tabs/';
    ini_set('max_execution_time', -1);

    if (
    $handle opendir($dir)) {
        while (
    false !== ($file readdir($handle))) {
            if (
    $file != "." && $file != "..") {
                
    //echo "$file\n".'<br>';
                
    $Text file_get_contents ("$dir".$file);
                
    //$Text = strip_tags($Text);
                //echo ($Text);
                
    foreach ($SN as $nr => $zeile) {
                    
    $zeile rtrim ($zeile);
                    
    $zeile '>'.$zeile.'<';
                    
    $Prüf stripos($Text$zeile);
                    echo (
    $zeile."<br>");
                        if (
    $Prüf !== false) {
                        
    // Anweisungen für vorhanden
                        
    $zeile2 $zeile."\n";
                        
    $Schreib file_put_contents ($TzO$zeile2,FILE_APPEND);
                        unset(
    $SN[$nr]);
                        }
                    }
            }
        }
        
    closedir($handle);
    }
    ?>
    gelingt es, über das echo zu erkennen, das das unset wirksam ist, weil die Suchwörter mit zunehmend überprüften Tabellen stetig abnehmen.
    Gleichzeitig ist aber auch festzuhalten, das die Ursprungsdatei Suchnamen.txt unverändert bleibt, was mich zu der Annahme führt, das die Abläufe im Array als wie in einer virtuellen Datenbank zu betrachten sind, was ja auch schon mal wichtig zu wissen ist.
    Also muß, wenn dieser virtuelle Vorgang "dauerhaft" festgehalten werden soll, noch irgendwo ein Schreibbefehl eingefügt werden.
    Das habe ich dann an dieser Stelle getan:
    PHP-Code:
                        if ($Prüf !== false) {
                        
    // Anweisungen für vorhanden
                        
    $zeile2 $zeile."\n";
                        
    $Schreib file_put_contents ($TzO$zeile2,FILE_APPEND);
                        unset(
    $SN[$nr]);
                        }
    //echo($SN[$nr]);
                        
    $Rest = ($SN[$nr]);
                        
    $Schreib file_put_contents ($SuchNamRest,$Rest,FILE_APPEND);
                    } 
    An dieser Stelle der Schreibvorgang bringt zwar zu jeder Tabelle die aktuellen Suchnamen, was eigentlich nicht nötig ist. Aber die letzte Runde der letzten Tabelle hällt dann den Rest fest, der keine Tabelle gefunden hat.

    Deine vorgeschlagenen Veränderungen bezüglich der Suchdefinitionen habe ich auch schon umgesetzt, weil sie verhindern, das z.B. in der Tabelle Sonnenschein sowohl Sonne als auch Schein als Treffer gewertet werden.

    Danke auch für Deinen Hinweis auf unset, der meine Irrfahrten endlich beendete, hast ja gesehen, auf welche Ideen ich komme, wenn der richtige Befehl nicht angesprochen ist.

    Dann werde ich mich jetzt gedanklich auf die andere Hälfte Deines Lösungsansatzes stürzen und wünsche Dir soweit ein schönes Wochenende.

    Gruß
    Estrela
    Denk positiv.

    Kommentar


    • #17
      OffTopic:
      Über die Beteiligungsrate wundere ich mich auch ein wenig. Hatte ich etwas reger in Erinnerung.
      Ich persönlich finde deine Beiträge etwas zu ausführlich, zu viele unrelevante Informationen. Da habe ich ehrlich gesagt nicht die Lust, alles zu lesen. Denke, so geht es einigen. Ist zwar gut gemeint von dir und auch sehr löblich, aber mir fehlt da irgendwie die Lust.

      Kommentar


      • #18
        Original geschrieben von Estrela
        Programmiersprachen haben ja den Vorteil, die Erledigung wiederkehrende Aufgaben zu ermöglichen. Es ist zwar am Anfang etwas haarig, den Einstig zu finden, aber danach wird es immer besser.
        Momentan arbeite ich gerade daran, die Konzeption der Arrays besser zu verstehen.
        was du als "haarig" bezeichnest, sind allgemeine grundlagen. also die datentypen (z.b. array), insbesondere auch strings (single quoted,
        double quoted or not quoted ) und kontrollstrukturen (schleifen-typen, bedingungen). das sollte alles erstmal halbwegs sitzen, bevor man eine etwas "komplexere" aufgabe lösen möchte.
        ich schreibe das, weil du diese sprache nach eigenen angaben langfristig erlernen möchtest - und nicht nur einmalig eine problemlösung suchst.

        dazu möchte ich dir die excellente php-doku ans herz legen PHP Handbuch zusammen mit der anfängerfreundlichen einführung von uns peter http://www.peterkropff.de/site/php/php.htm

        Original geschrieben von PHP-Desaster
        Ich persönlich finde deine Beiträge etwas zu ausführlich, zu viele unrelevante Informationen. Da habe ich ehrlich gesagt nicht die Lust, alles zu lesen. Denke, so geht es einigen. Ist zwar gut gemeint von dir und auch sehr löblich, aber mir fehlt da irgendwie die Lust.
        das trifft es ganz gut. ich habe mir mal den thread "Sonderzeichen konvertieren" von dir rausgesucht und auch nur überflogen, zuviel text und zuviele grundlegende probleme, das macht es unübersichtlich. antworten kann man eigentlich nur, wenn man alles gelesen hat und das schreckt viele ab.
        außerdem wiederholst du einige fehler aus diesem thread erneut, vielleicht weil du zuviel feedback auf einmal erhältst und nicht alles verarbeiten kannst.

        daher kann ich dir nur raten, eine halbwegs solide basis zu schaffen und dann konkrete probleme im "PHP Developer Forum", anstelle von einem großen klumpen in "Projekthilfe" zu posten.

        Kommentar


        • #19
          Hallo zusammen.

          Ihr habt ja sicherlich recht, bin ja gerade dabei, mir eine praxisbezogene Basis zu erarbeiten. Und mit Hilfe hier im Forum ist es mir gelungen, schon einige Teilschritte zu gehen. Ohne die Hilfe des Forums hier auf php-resource hätte ich es wohl nicht in Betracht gezogen, die Fremdsprache PHP zu erlernen.
          Vor der abstrakten kompakten Ausdrucksweise kommt bei mir erstmal das Verstehen, das ich versuche dadurch zu erreichen, das ich die Sachen deutlich aufschreibe, um sie dabei selbst zu verstehen und auch späteren Lesern diesen Weg des Erkennens aufzuzeigen.
          Andererseits möchte ich natürlich die Menschen, die mir hier helfen, nicht unnötig davon abhalten und werde daher versuchen, mich in Zukunft knapper auszudrücken.

          Ich habe das Trefferarray hier wie folgt zusammengebaut:

          PHP-Code:
          <?php
          $SuchNam 
          'Suchnamen.txt';
          $SuchNamRest 'Suchnamenrest.txt';
          $TzO 'TabzuOrdnung.txt'
          $KTzO 'KeineTabzuOrdnung.txt';
          $SN file ($SuchNam);
          $dir 'tabs/';
          ini_set('max_execution_time', -1);

          // Leeres Trefferarray
          $treffer = array();


          if (
          $handle opendir($dir)) {
              while (
          false !== ($file readdir($handle))) {
                  if (
          $file != "." && $file != "..") {
                      
          //echo "$file\n".'<br>';
                      
          $Text file_get_contents ("$dir".$file);
                      
          //$Text = strip_tags($Text);
                      //echo ($Text);
                      
          foreach ($SN as $nr => $zeile) {
                          
          $zeile rtrim ($zeile);
                          
          $zeile2 '>'.$zeile.'<';
                          
          $Prüf stripos($Text$zeile2);
                          
          //echo ($zeile."<br>");
                              
          if ($Prüf !== false) {
                              
          // Anweisungen für vorhanden
                              
          $zeile strip_tags ($zeile);
                              
          $zeile3 $zeile."\n";
                              
          $Schreib file_put_contents ($TzO$zeile3,FILE_APPEND);
                              unset(
          $SN[$nr]);
                              }
          //echo($SN[$nr]);
                              
          $Rest = ($SN[$nr]);
                              
          $Schreib file_put_contents ($SuchNamRest,$Rest,FILE_APPEND);
                                  
          // Einfügen von Datei und Suchwort (innerhalb der Schleife)
                                  
          if(!isset($treffer[$file]))
                                  {
                                  
          $treffer[$file] = array();
                                  }
                                  
          $treffer[$file][] = $zeile;
                          }
                  }
              }
              
          closedir($handle);
          }
          // Ganz am Ende, das Array zeilenweise in dein geünschtes Format konvertieren
          foreach($treffer as $file=> $zeile)
          {
          $zeilebauen $file.'#'.implode(','$zeile)."\n";
          echo 
          $zeilebauen;
          }
          ?>
          Leider funktioniert das mit der Trefferzuweisung nicht so wie erwartet.
          Momentan werden alle restlichen Suchwörter hinter den Tabellennamen geschrieben.
          Zu besichtigen unter: http://www.santodaimeportal.de/test2/test4.php
          Die Warnungen bitte ignorieren, lokal funktioniert alles.
          Um die Konstruktion gedanklich zu rekonstruieren, müßte ich jetzt wieder viele Worte machen, darum frage ich ganz kurz:
          Könnt ihr den Fehler erkennen und berichtigen?

          Dank und Gruß
          Estrela
          Denk positiv.

          Kommentar


          • #20
            Original geschrieben von Estrela
            Leider funktioniert das mit der Trefferzuweisung nicht so wie erwartet.
            Momentan werden alle restlichen Suchwörter hinter den Tabellennamen geschrieben.
            kannst du den code nicht ordentlich einrücken? mein editor, zend studio, kann das zumindest.
            dann sieht es so aus:

            PHP-Code:
            $SuchNam 'Suchnamen.txt';
            $SuchNamRest 'Suchnamenrest.txt';
            $TzO 'TabzuOrdnung.txt';
            $KTzO 'KeineTabzuOrdnung.txt';
            $SN file ($SuchNam);
            $dir 'tabs/';
            ini_set('max_execution_time', -1);

            // Leeres Trefferarray
            $treffer = array();


            if (
            $handle opendir($dir)) {
                while (
            false !== ($file readdir($handle))) {
                    if (
            $file != "." && $file != "..") {
                        
            //echo "$file\n".'<br>';
                        
            $Text file_get_contents ("$dir".$file);
                        
            //$Text = strip_tags($Text);
                        //echo ($Text);
                        
            foreach ($SN as $nr => $zeile) {
                            
            $zeile rtrim ($zeile);
                            
            $zeile2 '>'.$zeile.'<';
                            
            $Prüf stripos($Text$zeile2);
                            
            //echo ($zeile."<br>");
                            
            if ($Prüf !== false) {
                                
            // Anweisungen für vorhanden
                                
            $zeile strip_tags ($zeile);
                                
            $zeile3 $zeile."\n";
                                
            $Schreib file_put_contents ($TzO$zeile3,FILE_APPEND);
                                unset(
            $SN[$nr]);
                            }
            //echo($SN[$nr]);
                            
            $Rest = ($SN[$nr]);
                            
            $Schreib file_put_contents ($SuchNamRest,$Rest,FILE_APPEND);
                            
            // Einfügen von Datei und Suchwort (innerhalb der Schleife)
                            
            if(!isset($treffer[$file]))
                            {
                                
            $treffer[$file] = array();
                            }
                            
            $treffer[$file][] = $zeile;
                        }
                    }
                }
                
            closedir($handle);
            }
            // Ganz am Ende, das Array zeilenweise in dein geünschtes Format konvertieren
            foreach($treffer as $file=> $zeile)
            {
                
            $zeilebauen $file.'#'.implode(','$zeile)."\n";
                echo 
            $zeilebauen;

            wundert es dich jetzt immer noch, dass _alle_ verbliebenden wörter hinter den tabellennamen stehen?

            Kommentar


            • #21
              Hallo 3DMax.

              Ja wenn man das so sieht, ist es ja recht einfach.
              Super, alles läuft wie am Schnürchen.

              Herzlichen Dank an Dich und auch an PHP-Desaster.

              Alles Gute für die Zukunft und
              einen freundlichen Gruß
              sendet

              Estrela
              Denk positiv.

              Kommentar

              Lädt...
              X