Korzystam z kursu na kursphp.com, jestem teraz na końcu jednego z rozdziałów ( https://kursphp.com/rozdzial-5/podsumowanie...tego-rozdzialu/ ) i utknąłem.
Skrypt ma "czytać" daną stronę lub blik i zbierać adres email dopasowany według wyrażenia regularnego, po czym zapisać zebrane maile do pliku a następnie wysłać je mailem.
Oryginalny skrypt wygląda tak:
<?php function zdobadz_email($strona) //tutaj podajemy adres strony lub ścieżke pliku, wywołanie funkcji i podanie argumentu odbywa sie za pomocą require_once () z osobnego pliku { // formuła prawidłowego adresu e-mail $sprawdz = '/^[a-zA-Z0-9.\-_]+@[a-zA-Z0-9\-.]+\.[a-zA-Z] {2,4}$/'; // utworzenie naszego pliku // przeszukujemy plik dopóki nie znajdziemy sie na końcu { // sprawdzamy, czy znajduje się tam adres e-mail // jeśli tak, zapisujemy do naszego pliku } // po zapisaniu danych, wskaźnik znajduje się na końcu pliku // musimy go przewinąć znów na początek funkcją rewind() // zawartość zapisanego pliku wczytujemy do tablicy adresów // $adresy, z wykorzystaniem funkcji file // procedura wysyłania maila $adres = "przyklad@uzycia.pl"; $tytul = "Adresy e-mail"; $wiadomosc = "Znalezione adresy e-mail to: $adresy"; // odblokowanie pliku // zamknięcie // usunięcie, po wysłaniu e-mailem } ?>
Skrypt jest dziwny chociażby przez użycie ereg w 21 linijce (przez co przy wywołaniu funkcji wyrzuca Warning: ereg(): REG_ERANGE) natomiast składnia wyrażenia z 6 linijki wygląda na preg_match i taką też zmianę zastosowałem.
Następne warningi jakie dostaje to:
Warning: file() expects parameter 1 to be a valid path, resource given in C:\xampp\htdocs\kursphp\roz-4-6\5\funkcja_szukaj_maila.php on line 72 //(w poście linijka 32)
Warning: unlink() expects parameter 1 to be a valid path, resource given in C:\xampp\htdocs\kursphp\roz-4-6\5\funkcja_szukaj_maila.php on line 87 //(w poście linijka 47)
Domyśliłem się, że lokalizacja pobrana ze zmiennej $moj_plik jest nieprawidłowa ze względu na obecność w niej funkcji fopen więc podałem samą ścieżkę i co prawda warningi zniknęły, ale teraz funkcja zwraca taki notice:
Notice: Array to string conversion in C:\xampp\htdocs\kursphp\roz-4-6\5\funkcja_szukaj_maila.php on line 77 (w poście linijka 37).
Co prawda skrypt wykonuje się do końca (kasuje plik za pomocą unlink() na samym końcu, ale po moich modyfikacjach) i wysyła maila ale w treści nie ma maili, które powinny być pobranie z podanego pliku.
Czy będzie ktoś miły i pomoże mi rozwikłać dlaczego ten skrypt nie działa poprawnie albo chociaż naprowadzić? Korzystałem z manuala php i czytałem na temat użytych w skrypcie funkcji i ich parametrów i w sumie nie mam się do czego doczepić, wszystkie podane parametry wyglądają w porządku.
Dziękuję serdecznie, pozdrawiam.