Autor |
Nachricht |
bluespoon
Threadersteller
Dabei seit: 10.11.2006
Ort: Hannover
Alter: 41
Geschlecht:
|
Verfasst Do 31.07.2008 23:59
Titel Textdatei einlesen und Script-Ausführungszeit? |
|
|
SOLVED
Moin
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
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> " . $Klartext . "</td><td width=\"30\"> </td><td>"
. $Hash . "</td><td width=\"30\"> </td><td style=\"color: #009900; height: 20px\">Eingetragen </td>\n";
} else {
if($Klartext) {
echo "<tr bgcolor=\"".Hintergrundfarbe(1)."\"><td> " . $Klartext . "</td><td width=\"30\"> </td><td>"
. $Hash . "</td><td width=\"30\"> </td><td style=\"color: #990000; height: 20px\">Existiert bereits </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
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
Wozu das Script letztendlich dient sollte klar sein. Wenn net, erläutere ich das gerne noch einmal
Zuletzt bearbeitet von bluespoon am Fr 01.08.2008 05:16, insgesamt 7-mal bearbeitet
|
|
|
|
|
krautkopfkonney
Dabei seit: 20.11.2007
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 01.08.2008 00:56
Titel
|
|
|
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 :-/
Konstantin
|
|
|
|
|
Anzeige
|
|
|
krautkopfkonney
Dabei seit: 20.11.2007
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 01.08.2008 01:08
Titel
|
|
|
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");
}
}
}
|
Zuletzt bearbeitet von krautkopfkonney am Fr 01.08.2008 01:09, insgesamt 1-mal bearbeitet
|
|
|
|
|
bluespoon
Threadersteller
Dabei seit: 10.11.2006
Ort: Hannover
Alter: 41
Geschlecht:
|
Verfasst Fr 01.08.2008 01:09
Titel
|
|
|
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
Also vielen Dank erst einmal, das hilft mir weiter
Edit: Ja ... ich weiß 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
Zuletzt bearbeitet von bluespoon am Fr 01.08.2008 01:11, insgesamt 1-mal bearbeitet
|
|
|
|
|
krautkopfkonney
Dabei seit: 20.11.2007
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 01.08.2008 01:41
Titel
|
|
|
Das soll doch nicht etwa ne Brud-Foaß Datenbank werden, oder?
|
|
|
|
|
bluespoon
Threadersteller
Dabei seit: 10.11.2006
Ort: Hannover
Alter: 41
Geschlecht:
|
Verfasst Fr 01.08.2008 01:50
Titel
|
|
|
BF? Naaaaaaaein! Natürlich net
Doch! Für den MD5-Cracker ... oder eben meinen Re-Code davon. Aber so ein Proggi an sich ist ja net illegal 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
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
|
|
|
|
|
|
|
|
Ä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
|
|