Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]preg_match: email ze zmiennej weryfikuje dobrze - ze strony www nie
Grandalf00
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 23.01.2016

Ostrzeżenie: (0%)
-----


Witam forumowiczów! Testuje pisanie wyrażeń regularnych i pewnej rzeczy nie potrafię zrozumieć.

  1. <?php
  2. $email = "email@domena.pl";
  3. $wzor = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$/';
  4. echo preg_match($wzor, $email);
  5. ?>

Zwraca 1 - ok, jasne, ale:
  1. <?php
  2. $strona = fopen('https://www.lu.pl/kontakt/', 'r');
  3. $wzor = '/^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)+$/';
  4. while(!feof($strona)) {
  5. $linia = fgets($strona);
  6. if(preg_match($wzor,$linia) == 1) {
  7. echo $linia;
  8. }
  9. }
  10. ?>


nie zwraca nic, natomiast jak usunę ^ i $, to prawidłowo dostaje wszystkie adresy. Dlaczego? Sprawdzałem na kilku stronach i zawsze ze znacznikami początku i końca nie dostaje nic.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Grandalf00
post
Post #2





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 23.01.2016

Ostrzeżenie: (0%)
-----


Cytat(kapslokk @ 23.01.2016, 15:12:40 ) *
A sprawdzałeś po co właściwie są ^ i $? To początek i koniec stringu.
Czyli Twoje wyrażenie sprawdza czy podana linia jest w CAŁOŚCI adresem email.


Tak, sprawdzałem, ale z tłumaczeń zawsze wnioskowałem, że to ma być początek i koniec zdefiniowanego stringu, tzn: "To mój adres e-mail: adres@domena.pl", to myślałem, że:
Cytat
To jest mój adres e-mail: ^adres@domena.pl$

a nie:
Cytat
^To jest mój adres e-mail: adres@domena.pl$

i stąd moje pytanie. Czyli wnioskowałem, że skrypt przeszukuje znak po znaku i szuka fragmentu zgodnego ze wzorcem.

Cytat(viking @ 23.01.2016, 15:14:09 ) *
A poza tym wzorzec ten i tak jest niepoprawny dla maila zgodnie z RFC.


Domyślam się, po prostu kombinowałem na wszelkie sposoby aby znaleźć rozwiązanie.
Dziękuje.

Ten post edytował Grandalf00 23.01.2016, 15:23:19
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 17:54