![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 29.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Uczę się PHP od jakichś dwóch tygodni i utknąłem w miejscu.Moje środowisko do XAMPP i PHP 5.6.31
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:
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. Ten post edytował kamjot 5.09.2017, 14:43:14 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Polecam zmienic kurs bo pisal go jakis poczatkujacy... takie bledy... koles nawet nie testowal tego co publikuje :/
Tobie zas polecam manual i zagladniecie do funkcji, ktore rzucaja bledem. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 29.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Polecam zmienic kurs bo pisal go jakis poczatkujacy... takie bledy... koles nawet nie testowal tego co publikuje :/ Tobie zas polecam manual i zagladniecie do funkcji, ktore rzucaja bledem. Z tym kursem to się zgadzam, już nieraz musiałem poprawiać kod aby zaczął działać ![]() Co do błędów ereg, to zmieniłem na preg_match i jak dla mnie jest dobrze. Jednak już zaczyna mi się rozjaśniać - ja dobrze rozumiem 3 parametr preg_match() zapisuje znaleziony wzór w formie tablicy do pliku $moj_plik, więc jak dobrze rozumiem w pliku "tymczasowy_index.txt" poiwnienem się spodziewać czegoś w rodzaju $wynik[0] = "mail@mail.com" itp. natomiast plik ten jest pusty (wyłączyłem unlink, żeby sprawdzić zawartość pliku). Co do ostatniego błędu Array to string conversion to domyślam się, że powinienem przekonwertować tablicę do stringa np za pomocą explode albo wywołać każdy indeks tablicy ręcznie? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Warning: file() expects parameter 1 to be a valid path, resource given in Mowie poraz kolejny: zajrzyj do manuala co oczekuje funkcja file() jako pierwszy parametr a co ty dajesz.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 29.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mowie poraz kolejny: zajrzyj do manuala co oczekuje funkcja file() jako pierwszy parametr a co ty dajesz. Ok, gdy używam parametrów z oryginalnego kodu czyli to dostaję warning file() expects parameter 1 to be a valid path ale gdy użyję według mnie (na podstawie manuala wynika, że wystarczy tylko ścieżka do pliku, flagi mi tutaj raczej nie będą potrzebne) poprawnie skonfigurowanej funkcji file czyli: (plik 'tymczasowy_index.txt' znajduje się w tym samym katalogu co plik .php) to warny znikają. Ale problem jest jeszcze przed funkcją file() gdyż pętla while() powinna zapełnić plik 'tymczasowy_index.txt' a mimo to plik nie uzupełnia się danymi a wykonywanie funkcji kończy się komunikatem: Notice: Array to string conversion in C:\xampp\htdocs\kursphp\roz-4-6\5\funkcja_szukaj_maila.php on line 77 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zacznij poprawiać błędy od początku a nie końca. Masz gdzieś tablicę wcześniej.
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 7.07.2025 - 04:58 |