Warum schafft der Server diese Aufgabe nicht?
Sepp
- php
Hi,
dieser Code soll für 2700 Emailadressen (*@mailadresse.tld) überprüft werden. Warum schafft der Server (Schlund) das nicht und gibt mir stattdessen einen 500er aus?
Lokal läuft der Code.
while( $row = $db->sql_fetchrow($result) )
{
$match_email = str_replace("*@", ".*@", $row['ban_email']);
if ( preg_match("/^" . $match_email . "$/is", $email) )
{
return array('error' => true, 'error_msg' => $lang['Email_banned']);
}
}
Gibt es eine effektivere Methode?
Danke für Hinweise
Sepp
Hi Sepp,
ohne deinen Quelltext angesehen zu haben, denn dies Problem ist bei Massenhostern bekannt:
ganz banal gesagt, dem (Schlund) Server dauert die ganze Sache (2700 Adressen) zu lange ...
Irgendwo gibt es da einen Timeout und dann spielt der "Masenhosterserver" nicht mehr mit (warum sollte er auch - andere Kunden wollen den Service ja auch noch in Anspruch nehmen).
Lösung: den ganzen Adressenumfang aufteilen und nacheinander (jeweils 500 sollten auf alle Fälle gehen) durchjagen.
Gruß
der_bernd
... der heilfroh ist nicht bei 'nem Massenhoster zu sein ;-)
Moin!
Genau richtig. Nach ca 500 Mails script beenden, einem anderen Script die Nummer der letzten Mail übergeben, und von da aus wieder das eigentliche Script starten, mit der übergebenen Nummer als erste mail.
Grüße
Andreas
Moin!
Genau richtig. Nach ca 500 Mails script beenden, einem anderen Script die Nummer der letzten Mail übergeben, und von da aus wieder das eigentliche Script starten, mit der übergebenen Nummer als erste mail.
Grüße
Andreas
Danke erst mal...
Frage mich nur, warum das in einem Perlscript auf demselben Server locker geht...:-(
Da habe ich allerdings die Mailadressen auf ca. 10 Dateien verteilt und lasse sie durch eine foreach-Schleife in Arrays abholen und diese wiederum per foreach-schleife auf Übereinstimmungen prüfen...
Grüße
Sepp
Hi!
Frage mich nur, warum das in einem Perlscript auf demselben Server locker geht...:-(
Hm, wenn Du das Perl Script kennst, solltest Du dasselbe doch einfach auch in PHP hinbekommen! Solche Sachen sollten beide Sprachen gut beherrschen!
Aber noch mal zu der Sache mit nur einem Script, soweit ich weiß kann man das auch irgendwie mit sleep() in der Schleife machen, danach wird dann jedesmal so zu sagen für die CPU ein neuer Prozess gestartet, wenn ich das richtig in Erinnerung habe. Wurde hier vor kurzem mal diskutiert, finde den Thread auf die schnelle leider nicht!
Grüße
Andreas
und nochwas, wenn Du doch ein funktionierendes PERL Script hast, warum um Himmlswillen machst Du Dir dann die Arbeit???
und nochwas, wenn Du doch ein funktionierendes PERL Script hast, warum um Himmlswillen machst Du Dir dann die Arbeit???
Weil ich das System von Perl-flatfile auf php-mysql umstelle :-)
Und da muß und will ich noch einiges lernen :-)
Danke
Sepp