Skocz do zawartości

PHP wydobywanie maili z plików tekstowych i ich zapis


ghacek

Rekomendowane odpowiedzi

Chcę napisać funkcję odpowiedzialną za wydobywanie adresów email z plików tekstowych umieszczonych w domyślnym katalogu 'katalog' i i ich umieszczanie w osobnym pliku tekstowym lub bazie danych. Mam problem ze zliczeniem ilości wydobytych maili z pliku, zmienna $ile_maili wyświetla zły wynik, kod funkcji wygląda tak:

function wydobadz() {
$plik1 = 'adresy.txt';   //plik tekstowy do zapisywania wydobytych adresów email
$wzor = "/([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}/";  //wzor maila jako wyrazenie regularne
$matches = array(); 
$handle  = scandir('katalog');

for ($g=2; $g<count($handle); $g++) {   //obieg petli rowny ilosci plikow w katalogu 
$plik = file_get_contents('katalog/'. $handle[$g]);  //kazdy plik w katalogu wczytywany jako ciag znakow string  
$szukaj = preg_match_all($wzor, $plik, $matches, PREG_PATTERN_ORDER);   //nastepnie szukamy wyrazen pasujacych do wzoru czyli adresow email
$matches = array_unique($matches);   //filtrujemy duplikaty
$ile_maili = count($matches[$i]);		//zliczamy ilosc wydobytych emaili 


 for ($i=0, $j=0; $i<$ile_maili; $i++, $j++) {		 //zapisujemy wydobyte emaile do bazy lub do pliku txt domyslnie ustawione do pliku
  if ($matches[0][$i] != '') {
  //$sql4 = "INSERT INTO tabelka (id, emaile) VALUES (NULL, '$matches[$i]')"; 
  //mysql_query($sql, $conn) or die('Nie mam dostępu do bazy'. mysql_error());

  $otworz1 = fopen($plik1, 'w+');
	  if (!$otworz1) {
	  echo 'Nie mogę otworzyć pliku' . $plik1;
	  exit; 
	  } 
	  else {
		   for ($z=0; $z<$ile_maili; $z++) {
		   $zapisuje = fwrite($otworz1, $matches[0][$z]. ''); 
		   }

	  }
	  fclose($otworz1);
	  echo 'Zapisałem ' .$ile_maili . ' mail do pliku ' . $plik1 . ' status: OK';
  }
  else {}
 }
}

Programista aplikacji webowych i pozycjoner w Edukey - Szkolenia komputerowe | programowanie w VBA

Polecam dobry i tani hosting w firmie masternet

logo-edukey-twojaeuropa.png

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności