Witam. Na mojej stronie mam dużo użytkowników. Mam też skrypt mailingowy, dzięki któremu mogę informować użytkowników o nowościach. Problem tkwi w tym, że kopiowanie pojedyńczych meili zajęło by mi trochę czasu. Czy ktoś może mi powiedzieć jak zrobić skrypt, aby wyłapywał meile z tekstu i wyświetlał je w słupku?
No można wyciągnąć z tekstu wszystkie słowa, które zawierają małpę, potem sprwadzić czy po małpie i przed są jakieś znaki i czy po małpie dodatkowo znajduję się przynajmniej jedna kropka… można jeszcze kilka sprawdzeń robić dla bezpieczeństwa, ale te powinny wystarczyć;]
a jakich pentli mam do tego użyć???
http://forum.dobreprogramy.pl/viewtopic.php?t=129325
Spookojnie, 3 tematy dotyczące tego samego problemu?
P.S
Nie pętli tylko funkcji… A rozwiązanie masz już na tacy w najświeższym poście.
skrypt wajrak :
function get_addresses($file) {
$breaking = array(' ', ',', '>', '<', "\t", "\r", "\n");
$addr = array();
$data = explode('@', file_get_contents($file));
$n = count($data);
for ($i = 1; $i < $n; $i++) {
$addr[$i-1] = '@';
$begin = 0;
$end = strlen($data[$i-1]) - 1;
while ((!in_array($data[$i-1]{$end}, $breaking)) and ($begin <= $end)) {
$addr[$i-1] = $data[$i-1]{$end} . $addr[$i-1];
$end--;
}
$begin = 0;
$end = strlen($data[$i]) - 1;
while ((!in_array($data[$i]{$begin}, $breaking)) and ($begin <= $end)) {
$addr[$i-1] .= $data[$i]{$begin} ;
$begin++;
}
}
if (count($addr) == 0) {
return FALSE;
} else {
return $addr;
}
}
print_r(get_addresses('test.txt'));
Wywala mi błąd w lini 5
Jak znam życie nie czytałeś uważnie tego co Ci napisałem. Funkcja na tym przykładzie wyciąga maile z pliku test.txt , jak nie masz takiego pliku w katalogu ze skryptem będzie zgłaszała błąd w lini piątej bo nie może odczytać pliku którego nie ma.
hmm pojawia mi się to w takiej formie :
Array ( [0] => mail@wp.pl [1] => mail@yahoo.co.uk [2] => mail@o2.pl [3] => mail@poczta.onet.pl [4] => mail@gmail.com [5] => mail@wp.pl. [6] => mail@wp.pl )
a chciał bym aby wszystkie pojawiały się w słupku
function get_addresses($file) {
$breaking = array(' ', ',', '>', '<', "\t", "\r", "\n");
$addr = array();
$data = explode('@', file_get_contents($file));
$n = count($data);
for ($i = 1; $i < $n; $i++) {
$addr[$i-1] = '@';
$begin = 0;
$end = strlen($data[$i-1]) - 1;
while ((!in_array($data[$i-1]{$end}, $breaking)) and ($begin <= $end)) {
$addr[$i-1] = $data[$i-1]{$end} . $addr[$i-1];
$end--;
}
$begin = 0;
$end = strlen($data[$i]) - 1;
while ((!in_array($data[$i]{$begin}, $breaking)) and ($begin <= $end)) {
$addr[$i-1] .= $data[$i]{$begin} ;
$begin++;
}
}
if (count($addr) == 0) {
return FALSE;
} else {
return $addr;
}
}
$tablica = get_addresses('test.txt');
for ($i=0; $i<=count($tablica); $i++)
{
echo $tablica[$i].'
';
}
Tak będzie wyświetlało jeden pod drugim, zakładam, że to miałeś na myśli pisząc słupek