Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] wyjmowanie adresu ze stringa
rml
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 13.03.2005

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


Witam,

znalazlem oczywiscie setki opisow jak validatowac e-mail, ale nie wiem w jaki sposob zrobic cos innego...

mam baze postow i chcialbym z tej bazy wyjac wszystkie podane tam kiedys adresy e-mail... w jaki sposob "wyjac" z dlugiego tekstu sam adres emailowy? oczywiscie biorac pod uwage ze w jednym tekscie moze byc kilka adresow mailowych...

bardzo prosze o pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


pzdr,
rml.
Go to the top of the page
+Quote Post
Cienki1980
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Dzielisz post wg spacji.
Potem każdy taki fragment sprawdzasz na zawartość znaku @ jeżeli jest jest prawdopodobieństwo, że jest to adres e-mail.

Możesz sprawdzać dokładniej, korzystając z jakiegoś mechanizmu sprawdzającego poprawność adresu.

Jeżeli w ciągu jest znak @ sprawdź tym mechanizmem, jeżeli zwróci TRUE jest to adres email.
Go to the top of the page
+Quote Post
rml
post
Post #3





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 13.03.2005

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


to co napisales bedzie ok, ale tak:

- wiem jak podzielic string spacjami,
- wiem jak sprawdzic na obecnosc @, ale nie wiem jak przeszukac wszystkie z array'a ktorego stworzy explode(), jesli nie wiem ile ich jest?

poza tym, dzielenie spacjami i szukanie w kazdym jest bardzo procesorochlonne, nie ma jakiegos latwiejszego sposobu?
Go to the top of the page
+Quote Post
Cienki1980
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Pętla foreach() ... albo zastosowanie count($array) i potem wykorzystanie pętli for().

Co do łatwiejszego sposobu ... nie przychodzi mi nic w tej chwili do głowy.

Nawet jakbyś chciał korzystać z jakiejś funkcji sprawdzającej czy w danym ciągu ( w Twoim przypadku poscie ) znajduje się adres ... musiałbyś szukać znaka @ ... potem szukać znak spacji przed i po ciągu w którym występuje znak @ ....

Jak dla mnie rozdzielenie tego wg spacji i potem sprawdzenie każdego elementu jest prostsze do zrozumienia i wykonania.
Go to the top of the page
+Quote Post
rml
post
Post #5





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 13.03.2005

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


mozesz podac mi konkretny przyklad uzycia foreach() gdy posiadam $array z danymi po wykonaniu explode()? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Cienki1980
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


  1. <?php
  2. $array=array(); // tablica z wynikami
  3.  
  4. foreach($array as $klucz=>$wartosc)
  5. {
  6.  if(strstr($wartosc,'@'))
  7. if(funkcja_validujaca_mail($wartosc))
  8.  {
  9.  //zapisywanie adresu ... czyli zmiennej $wartosc bo jest to adres mail
  10.  }
  11. }
  12. ?>


Czasami warto zajrzeć do manuala php (IMG:http://forum.php.pl/style_emoticons/default/mad.gif)
Go to the top of the page
+Quote Post
rml
post
Post #7





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 13.03.2005

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


dziekuje bardzo! (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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: 24.08.2025 - 23:22