mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Mi 24.04.2024 16:14 Benutzername: Passwort: Auto-Login

Thema: Textdatei einlesen und Script-Ausführungszeit? vom 31.07.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Textdatei einlesen und Script-Ausführungszeit?
Autor Nachricht
bluespoon
Threadersteller

Dabei seit: 10.11.2006
Ort: Hannover
Alter: 41
Geschlecht: Männlich
Verfasst Do 31.07.2008 23:59
Titel

Textdatei einlesen und Script-Ausführungszeit?

Antworten mit Zitat Zum Seitenanfang

SOLVED


Moin *zwinker*

Anscghließend an meinen Post von gestern Abend ... habe ich noch ein kleines Problem. [Thema v. gestern s. Link. Aktueller Code unten hier im Thema]
http://www.mediengestalter.info/forum/10/textdatei-zeilenweise-in-schleife-in-mysql-tabelle-einfuegen-111312-1.html

Und zwar die maximale Ausführungszeit von PHP-Scripten. 30 Sekunden sind net viel ... wobei es neuerdings 60 Sekunden zu sein scheinen Au weia!

Wie bekomme ich es hin, eine Textdatei mit z. B. 100.000 Zeilen einzulesen? Mal von der Zeit abgesehen spielt ja auch die Rechenleistung und der Speicher eine Rolle. Also ich habe folgendes Script gebastelt, welches Worldlists in eine Datenbank überträgt. Und zwar einmal als Plain und einmal als MD5-Hash ... möchte aber gerne, dass nach 1000 Zeilen Schluss ist und dann erst die nächsten 1000 Zeilen eingelesen werden. Oder eben nach 500 Zeilen, damit auch gesichert ist, dass mein Script alle Zeilen lesen kann und net irgendwann sagt, "Sorry, aber die maximale Ausführunszeit ist erreicht!".

Hat jemand eine Idee?

Script hier ... vorhergehendes Thema s. oben:
Code:
<?php
   error_reporting(E_ALL);
   
   function Hintergrundfarbe($Tabellenzeile) {
      static $i;
      static $Farbe = array('#e9e9e9', '#ffffff');
      
      $Hintergrund = $Farbe[(int)($i + .00000001)];
      $i += 1 / $Tabellenzeile;
      if ($i >= count($Farbe)) $i = 0;
      
      return $Hintergrund;
   }
   
   $Datenbankserver = 'localhost';
   $Datenbankbenutzer = 'root';
   $Datenbankpasswort = '';
   $Datenbankname = 'mmjrweb_md5';
   $Datenbanktabelle = 'md5_set';

   $Verbindung = mysql_connect($Datenbankserver, $Datenbankbenutzer, $Datenbankpasswort)
   OR die("Keine Verbindung zur Datenbank. Bitte Angaben checken!");
   mysql_select_db($Datenbankname) OR die(mysql_error());
   
   $Zeilen = file ('wordlist.txt');
   
   echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"font-family: arial; font-size: 11px; color: #333333\">\n";
   
   foreach ($Zeilen as $Zeilennummer => $Zeile) {
      $KlartextMitUmbruch = htmlspecialchars($Zeile);
      $Klartext = str_replace("\r\n", "", $KlartextMitUmbruch);
      $Hash = md5(htmlspecialchars($Klartext));
      
      $sql = "SELECT
               COUNT(*) as Kram
            FROM
               ".$Datenbanktabelle."
            WHERE
               md5 = '".$Hash."'";
               
      $Ergebnis = mysql_query($sql) OR die(mysql_error());
      $R = mysql_fetch_assoc($Ergebnis);
               
      if($R['Kram'] == 0 && $Klartext) {
         $sql = "INSERT INTO
                  ".$Datenbanktabelle."
                  (plaintext, md5)
               VALUES
                  ('".$Klartext."', '".$Hash."')";
         
         mysql_query($sql) OR die(mysql_error());
         echo "<tr bgcolor=\"".Hintergrundfarbe(1)."\"><td>&nbsp;" . $Klartext . "</td><td width=\"30\">&nbsp;</td><td>"
         . $Hash . "</td><td width=\"30\">&nbsp;</td><td style=\"color: #009900; height: 20px\">Eingetragen&nbsp;</td>\n";
         
      } else {
         if($Klartext) {
            echo "<tr bgcolor=\"".Hintergrundfarbe(1)."\"><td>&nbsp;" . $Klartext . "</td><td width=\"30\">&nbsp;</td><td>"
            . $Hash . "</td><td width=\"30\">&nbsp;</td><td style=\"color: #990000; height: 20px\">Existiert bereits&nbsp;</td>\n";
         }
      }
      
      unset($Klartext);
      unset($Hash);
   }
   
   echo "</table>";
   
   mysql_close($Verbindung);
?>


Also ich bin für jede Hilfe dankbar ... auch wenn es nur Anregungen sind Lächel


PS: Meine Idee wäre die Schleife zum Eintragen in die Datenbank in eine zweite Schleife zu packen. Aber das ist ja nun keine saubere Lösung, gell!? Außerdem hänge ich iwie an der zweiten Schleife - net dass ich es net schon probiert hätte Grins

Wozu das Script letztendlich dient sollte klar sein. Wenn net, erläutere ich das gerne noch einmal Lächel


Zuletzt bearbeitet von bluespoon am Fr 01.08.2008 05:16, insgesamt 7-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
krautkopfkonney

Dabei seit: 20.11.2007
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 01.08.2008 00:56
Titel

Antworten mit Zitat Zum Seitenanfang

Die Lösung hier heißt: Rekursion.

Eine function() die sich immer selbst aufruft, wenn sie zu ende geht und sich selbst als Parameter sagt, wie weit sie gekommen ist. Ab da macht dann ihr nächster Aufruf weiter. Das Ende wird bekanntlich über EoF bestimmt.

Sorry, dass ich grad kein exemplarisches Script dabei hab. Hab einfach keine Zeit aber ich hoffe, dass war anregung genug. Und meine Sätze werden um dieses Uhrzeit auch nciht besser :-/

*bäh* Konstantin
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
krautkopfkonney

Dabei seit: 20.11.2007
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 01.08.2008 01:08
Titel

Antworten mit Zitat Zum Seitenanfang

BTW, So wird eingerückt.


Code:

while ($readingtext)
{
     function formatierung($code, $poster)
     {
          $code = Analyse($code);
          $Talent = Einschätzung($code, $poster)
          if ($Talent == "Supi")
          {
               echo"Haste toll gemacht.";
          }
          esleif ($Talent == "Solala")
          {
               echo"BTW: So wird eingerückt...";
          }
          else
          {
              die ("$poster");
          }
     }
}


*zwinker*


Zuletzt bearbeitet von krautkopfkonney am Fr 01.08.2008 01:09, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
bluespoon
Threadersteller

Dabei seit: 10.11.2006
Ort: Hannover
Alter: 41
Geschlecht: Männlich
Verfasst Fr 01.08.2008 01:09
Titel

Antworten mit Zitat Zum Seitenanfang

Ja, doof - echt! Das ist doch logisch. Auf soetwas sollte man eigentlich von selbst kommen. Ich schließe mich also dem Dingen mit der Uhrzeit an Grins

Also vielen Dank erst einmal, das hilft mir weiter Lächel

Edit: Ja ... ich weiß * Ja, ja, ja... * Aber ich hab' es mir irgendwann mal so angewähnt und komme davon net mehr los. Grund: Für mich war es anfangs einfach übersichtlicher Lächel


Zuletzt bearbeitet von bluespoon am Fr 01.08.2008 01:11, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
krautkopfkonney

Dabei seit: 20.11.2007
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 01.08.2008 01:41
Titel

Antworten mit Zitat Zum Seitenanfang

Das soll doch nicht etwa ne Brud-Foaß Datenbank werden, oder?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
bluespoon
Threadersteller

Dabei seit: 10.11.2006
Ort: Hannover
Alter: 41
Geschlecht: Männlich
Verfasst Fr 01.08.2008 01:50
Titel

Antworten mit Zitat Zum Seitenanfang

BF? Naaaaaaaein! Natürlich net Grins

Doch! Für den MD5-Cracker ... oder eben meinen Re-Code davon. Aber so ein Proggi an sich ist ja net illegal *zwinker* Und für was es eingesetzt wird ... na ja. Also ich hab' zumindest erst einmal nix mehr damit vor, wenn es fertig ist. Also in erster Linie mal Spielerei für mich Lächel

Edit: Wobei es ja kein wirkliches B-forcen ist, sondern effektiv einfach nur das Durchsuchen einer Datenbank.


Zuletzt bearbeitet von bluespoon am Fr 01.08.2008 01:52, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen HILFE! Textdatei in Flash MX einlesen
Externe Textdatei in Flash einlesen???
Textdatei einlesen und das nur einpaar zeilen
RSS Feed einlesen
Xml einlesen mit button?
RTF Dateien mit PHP einlesen
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.