E-Mail Adressen TLD de filtern
Einklappen
X
-
... und falls kein phpmyadmin vorhanden ist, schau dir den mysql-befehl "load data infile" an. mit dem kannst du dateien in die db laden.
-
Du kannst dir mit Hilfe von PHPMyAdmin die text-Dateien in eine Datenbank eintragen lassen.
Einen Kommentar schreiben:
-
Original geschrieben von Wotan
in dem du die eMails in eine Datenabnk packts und sie dann von dort aus ausliest.Gibt es denn eine andere möglichkeit.
Einen Kommentar schreiben:
-
in dem du die eMails in eine Datenabnk packts und sie dann von dort aus ausliest.
Einen Kommentar schreiben:
-
Hallo,
erstmal danke für die schnellen Atnworten. Mir ist aufgefallen daß das Probelem ein anderses ist.
Beide Vorschläge, die hier gemacht worden sind, haben funktioniert. Ich glaube das ich es mit RegExp lösen werden.
PHP-Code:foreach ($f AS $val)
{
#if (emailFilter($val, $tld))
if (preg_match('/.de$/', $val))
{
$testHTML .= $val . "<br>\n";
}
}
. Die besagte Datei beinhaltet 10.000 E-Mail Adressen irgendwie kommt das Skript bei dieser grössenordnung nicht mehr mit...? D.h. bei diesem Beispiel
msinc@mergetiel.de
asinc@usiet.net
sasdclair@007.com
asdfd@sadf.tw
msdfka@lestsi.hut.de
msdfka@lessti.hut.fi
fsadfet03@iola.ie
msinet04@iole.ie
nochaml@kdfk.de
System:
Windows XP Pro
AMD XP 1800
512 MB
Apache 1.3.X
PHP 4.3.2
cheers
Einen Kommentar schreiben:
-
zwei ideen:
versuch doch erstmal
strrpos($strEmail, '.')+1 eine zeile vorher in eine eigene var zu packen also so:
PHP-Code:function emailFilter($strEmail=null, $tld='de')
{
$stelle=strrpos($strEmail, '.')+1;
$emailTld = substr($strEmail, $stelle);
echo "($emailTld == $tld)<br>\n";
return ($emailTld == $tld)?true:false;
}
oder einfacher:
PHP-Code:function emailFilter($strEmail=null, $tld='de')
{
$emailTld = substr($strEmail, -2);
echo "($emailTld == $tld)<br>\n";
return ($emailTld == $tld)?true:false;
}
hoffe es hilft
Einen Kommentar schreiben:
-
da er eh durch eine schleife geht, kann man auch ereg() verwenden.
PHP-Code:if (ereg('.de$', $mail))
echo '.de addi';
Einen Kommentar schreiben:
-
Ich glaube, dass sich das mit RegExp sehr viel leichter lösen lässt. Allerdings habe ich mich noch nicht soweit mit ihnen beschäftigt, als dass ich dir nun einen Lösungsvorschlag anbieten könnte. Guck mal in den Tutorials bei php-resource, da ist eine gute Einleitung. Ich denk mal, das ist in 10 Minuten gelesen und in 2 Minuten gescriptet =)
Einen Kommentar schreiben:
-
E-Mail Adressen TLD de filtern
Hallo,
habe eine Datei die mit E-Mail Adressen, die mit verschiedene TLD sind. Nun wollte ich alle de rausfiltern, aber es will mir nicht so genau gelingen.
emails.txt
PHP-Code:function readFiles($filename=null, $tld='de')
{
$testHTML = "";
if (is_dir($filename))
dir($filename . " is not a Valid File");
$f = file($filename);
$testHTML .= $filename . "<br>\n";
$testHTML .= sizeof($f) . " adresses<br>\n";
$testHTML .= str_repeat("+", 70) . "<br>\n";
foreach ($f AS $val)
{
if (emailFilter($val, $tld))
{
echo "Ja<br>";
$testHTML .= $val . "<br>\n";
} else echo "nein<br>";
}
$testHTML .= "<p>";
return $testHTML;
}
function emailFilter($strEmail=null, $tld='de')
{
$emailTld = substr($strEmail, strrpos($strEmail, '.')+1);
echo "($emailTld == $tld)<br>\n";
return ($emailTld == $tld)?true:false;
}
echo readFiles('emails.txt');
Die Funktion emailFilter sollte die E-Mail-Adresse nach den TLD überprüffen lautet diese de soll true ausgeben werden falls nicht dann eben false. Tut es aber nicht. Es wird immer false zurückgegeben...? Ich kann leider den Fehler nicht erkennen.
cheersStichworte: -
Einen Kommentar schreiben: