Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyciąganie adresów e-mail za pomocą imap problem z tablicą
maraska
post
Post #1





Grupa: Zarejestrowani
Postów: 143
Pomógł: 0
Dołączył: 9.04.2013

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


Witam. Chciałem wyciągnąć i zapisać do bazy adresy e-mail znajdujące się w body przychodzących wiadomości.
W ten sposób
  1. .....
  2. $emails = imap_search($inbox,'ALL');
  3.  
  4. if($emails) {
  5. foreach($emails as $email_number) {
  6.  
  7. $message = imap_fetchbody($inbox,$email_number,1.2);
  8. preg_match_all("/([w.+-]+)@([a-zA-z0-9.-]+).(w{2,6})/", $message, $wynik);
  9.  
  10. foreach ($wynik as &$value){
  11. echo '<pre>';
  12. print_r($value);
  13. echo '</pre>';
  14.  
  15. //zapis do bazy


Łączy się ze skrzynką, zlicza maile ale nie wiem jak rozwiązać problem tablic w pętli.
W body każdej wiadomości może być kilka adresów e-mail.

print_r($value); daje:

<pre>Array
(
)
</pre><pre>Array
(
)
</pre><pre>Array
.......

Z góry dziękuję za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
trzczy
post
Post #2





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


Chyba się jakoś pogubiłeś jednak. Zobacz jak to działa ładnie:
  1. <?php
  2. $text = <<<'AHA'
  3. ewfda fdffdsfddsa fdsaf ewewem thurn@live.com rewqreqw
  4. fda fdefhgfjh fdsa fdsaf fangorn@hotmail.com rewqr re q rewqrrwq
  5. fda fdfdf dsa fdsaf euice@outlook.com ewrewqre
  6. fd
  7.  
  8. a f fhjhfdffdsaf fdsa fdsaf rgarcia@optonline.net rewqrewq
  9. fda fdfdsa fdsaf mxiao@yahoo.com rewreqw rewqer
  10. fda fd hffdsa fdsaf firstpr@att.net r ewqrewq
  11. AHA;
  12. $pattern='/\S+@\S+\.\S{1,6}/';
  13. preg_match_all($pattern, $text, $matchArray);
  14. print_r($matchArray[0]);
  15. //Array
  16. //(
  17. // [0] => thurn@live.com
  18. // [1] => fangorn@hotmail.com
  19. // [2] => euice@outlook.com
  20. // [3] => rgarcia@optonline.net
  21. // [4] => mxiao@yahoo.com
  22. // [5] => firstpr@att.net
  23. //)
https://3v4l.org/RsgZA
Sam pattern regexa dodatkowo uprościłem, bo w sumie na internecie jest sporo przykładów na taki pattern, a ostatecznie warto by wiedzieć, jak to reguluje standard. Ja bym to brał takim regexem jak ten tutaj, a potem filter_var dla mejla w php.
  1. filter_var('bob@example.com', FILTER_VALIDATE_EMAIL)


Ten post edytował trzczy 12.12.2017, 06:40:51
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: 16.10.2025 - 05:47