Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> dzielenie
jarmiar
post
Post #1





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


witam,

jak można z teo wyciągnąć datę, e-mail, temat, godzinę i ilość znaków?

Kod
N 1)28-Aug-2007 advt@advt.pl 1K14:52 hvbu (236 chars)



bardzo proszę o pomoc bo jest mi to bardzo potrzebne

pozdrawiam


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
Mordoran
post
Post #2





Grupa: Zarejestrowani
Postów: 81
Pomógł: 2
Dołączył: 26.10.2005

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


Na szybko to bym sie zabawil z explode" title="Zobacz w manualu PHP" target="_manual() i po spacjach, znakach szczegolnych w tym stringu lecial.
Ale tak na serio to trzeba by zabawiac sie z wyrazeniami regularnymi. A to juz trzeba sobie przypomniec jak sie je stosowalo smile.gif


--------------------
I WANT TO BELIEVE
Co to, to nie mogę powiedzieć 8)
--==SGC SG1==--
<<Jaffa Kree!!!>>
Go to the top of the page
+Quote Post
seaquest
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 790
Pomógł: 7
Dołączył: 6.02.2003
Skąd: Polska

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


Kod
/N 1\)(.+?) (.+?) 1K(.+?) (.+?) \(([0-9]+) chars\)/


preg_match" title="Zobacz w manualu PHP" target="_manual zwraca:

Kod
Array
(
    [0] => N 1)28-Aug-2007 advt@advt.pl 1K14:52 hvbu (236 chars)
    [1] => 28-Aug-2007
    [2] => advt@advt.pl
    [3] => 14:52
    [4] => hvbu
    [5] => 236
)


Pisane na szybko i pewnie mało przystosowane. Daj kilka stringów przykładowych to będzie łatwiej dostosować.

Ten post edytował seaquest 28.08.2007, 14:21:01


--------------------
Michał Płachta
Warsztat: Mac OS X Leopard, PostgreSQL, Text Mate, Retrospectiva + SVN
Go to the top of the page
+Quote Post
jarmiar
post
Post #4





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


niestety liczba po N zmienia się wraz z kolejnym mailem i preg_match nie działa w związku z tym.oto przykładowe stringi
Kod
N 1)28-Aug-2007 advt@advt.pl 1K14:52 hvbu (236 chars)
N 2)03-Jul-2006 jakis@email.pl 26K18:19 jakiś tekstnbsdjbsjdh (512 chars)
N 3)03-Jan-2007 jajaja@jajaja.pl 5K00:59 fgbfgbfgb (365 chars)


Ten post edytował jarmiar 28.08.2007, 15:08:34


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
bim2
post
Post #5





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Cytat
Array
(gh
[0] => N 3)03-Jan-2007 jajaja@jajaja.pl 5K00:59 fgbfgbfgb (365 chars)
[1] => 03-Jan-2007
[2] => jajaja@jajaja.pl
[3] => 00:59
[4] => fgbfgbfgb
[5] => 365
)

  1. <?php
  2. preg_match('/N [0-9]+)(.+?) (.+?) [0-9]+K(.+?) (.+?) (([0-9]+) chars)/', 'N 3)03-Jan-2007 jajaja@jajaja.pl 5K00:59 fgbfgbfgb (365 chars)', $aMatches);
  3. print_r($aMatches);
  4. ?>

Jeśli chcesz wyciągnąć N i K, to daj
  1. <?php
  2. preg_match('/N ([0-9]+?))(.+?) (.+?) ([0-9]+?)K(.+?) (.+?) (([0-9]+) chars)/', 'N 3)03-Jan-2007 jajaja@jajaja.pl 5K00:59 fgbfgbfgb (365 chars)', $aMatches);
  3. print_r($aMatches);
  4. ?>


Ten post edytował bim2 28.08.2007, 15:57:54


--------------------
Go to the top of the page
+Quote Post
jarmiar
post
Post #6





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


niestety występuje błąd:


Warning: preg_match() [function.preg-match]: Compilation failed: unmatched parentheses at offset 8 in /lista.php on line 22

Warning: preg_match() [function.preg-match]: Compilation failed: unmatched parentheses at offset 8 in /lista.php on line 22

Warning: preg_match() [function.preg-match]: Compilation failed: unmatched parentheses at offset 8 in /lista.php on line 22

Warning: preg_match() [function.preg-match]: Compilation failed: unmatched parentheses at offset 8 in /lista.php on line 22

Warning: preg_match() [function.preg-match]: Compilation failed: unmatched parentheses at offset 8 in /lista.php on line 22


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
bim2
post
Post #7





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Skopiuj jeszcze raz. Po dodaniu zauważyłem literówkę i ją zmieniłem.

BTW. Szybki jesteś, bo zmieniałem kod zaraz po napisaniu posta tongue.gif


--------------------
Go to the top of the page
+Quote Post
jarmiar
post
Post #8





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


nadal jest to samo jak kopiuję pierwszy kod

Warning: preg_match() [function.preg-match]: Compilation failed: unmatched parentheses at offset 8 in /lista.php on line 22

Warning: preg_match() [function.preg-match]: Compilation failed: unmatched parentheses at offset 8 in /lista.php on line 22

Warning: preg_match() [function.preg-match]: Compilation failed: unmatched parentheses at offset 8 in /lista.php on line 22

Warning: preg_match() [function.preg-match]: Compilation failed: unmatched parentheses at offset 8 in /lista.php on line 22

Warning: preg_match() [function.preg-match]: Compilation failed: unmatched parentheses at offset 8 in /lista.php on line 22

Jak kopiuję drugi to wyśietla mi:

Array ( ) Array ( ) Array ( ) Array ( ) Array ( )


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
bim2
post
Post #9





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Bez jaj.
Cytat
Array
(
[0] => N 3)03-Jan-2007 jajaja@jajaja.pl 5K00:59 fgbfgbfgb (365 chars)
[1] => 3
[2] => 03-Jan-2007
[3] => jajaja@jajaja.pl
[4] => 5
[5] => 00:59
[6] => fgbfgbfgb
[7] => 365
)


  1. <?php
  2. preg_match('/N ([0-9]+?))(.+?) (.+?) ([0-9]+?)K(.+?) (.+?) (([0-9]+) chars)/', 'N 3)03-Jan-2007 jajaja@jajaja.pl 5K00:59 fgbfgbfgb (365 chars)', $aMatches);
  3. print_r($aMatches);
  4. ?>


Czemu więc mi działa? Może jakiś inny nagłówek jest?


--------------------
Go to the top of the page
+Quote Post
jarmiar
post
Post #10





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


to jest mój cały skrypt
  1. <?php
  2.  $num = $_GET['num'];
  3.  if(isset($num))
  4.  {
  5. $link=imap_open("{pop3.*******.pl:110/pop3}INBOX", $login, $haslo);
  6. $header=imap_header($link,$_GET['num']);
  7. echo "Od: $header->fromadress<br>";
  8. echo "Do: $header->toaddress<br>";
  9. echo "Data: $header->Date<br>";
  10. echo "Temat: $header->Subject<br><br>";
  11. echo imap_body($link,$_GET['num'], $login, $haslo);
  12.  }
  13.  else
  14.  {
  15.  $login = "*****";
  16.  $haslo = "******";
  17.  $link=imap_open("{pop3.*******.pl:110/pop3}INBOX", $login, $haslo);
  18.  echo imap_last_error();
  19.  $headers=imap_headers($link);
  20.  for($x=1; $x < count($headers); $x++) {
  21.  $idx=($x-1);
  22.  preg_match('/N [0-9]+)(.+?) (.+?) [0-9]+K(.+?) (.+?) (([0-9]+) chars)/', $headers[$idx], $aMatches);
  23.  print_r($aMatches);
  24.  //w tym miejscu chcę to wyciągnąć za pomocą preg_metch()
  25.  echo '<a href="lista.php?num='.$x.'">'.$dane[10].'</a>';
  26.  if(!empty($headers[$idx]))
  27.  {
  28.  /*
  29.  $wiadomosc = 'Nowa wiadomośc zatytuowana: '.$headers[$idx].'.';
  30.  $adres_bramki = "http://smsowo.pl/sms/sendsms.php";
  31.  $c = curl_init();
  32.  curl_setopt($c, CURLOPT_URL, "$adres_bramki");
  33.  curl_setopt($c, CURL_POST, 1);
  34. curl_setopt($c,CURLOPT_POSTFIELDS,"numer=**********&text=$wiadomosc&podpis=Poczta ");
  35. curl_exec($c);
  36.  curl_close($c); 
  37.  */
  38.  }
  39.  }
  40.  }
  41.  ?>


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
seaquest
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 790
Pomógł: 7
Dołączył: 6.02.2003
Skąd: Polska

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


A nie możesz używać po prostu używać funkcji imap? Po co w ogóle angażować w to wyrażenia regularne?

imap_fetch_overview" title="Zobacz w manualu PHP" target="_manual

Zobacz tam na przykładowy kod.


--------------------
Michał Płachta
Warsztat: Mac OS X Leopard, PostgreSQL, Text Mate, Retrospectiva + SVN
Go to the top of the page
+Quote Post
jarmiar
post
Post #12





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


wynalazłem taki kod:
  1. <?php 
  2.  $mbox=imap_open("{pop3.**************.pl:110/pop3}INBOX", $login, $haslo);
  3.  $MC=imap_check($mbox);
  4.  $MN=$MC->Nmsgs;
  5.  $overview=imap_fetch_overview($mbox,"1:$MN",0);
  6.  $size=sizeof($overview);
  7.  for($i=$size-1;$i>=0;$i--)
  8.  {
  9.  $val=$overview[$i];
  10.  $msg=$val->msgno;
  11.  $from=$val->from;
  12.  $date=$val->date;
  13.  $subj=$val->subject;
  14.  $size=$val->size;
  15.  echo '<b> ID:</b> '.$msg.' <b>OD</b>: '.$from.'<b> Data:</b> '.$date.' <b>Temat:</b> '.$subj.' <b>Rozmiar:</b> '.$size.'<br />';
  16.  }
  17.  imap_close($mbox);
  18.  ?>


lecz niestety maile wyświetla mi to w bardzo nieprzyjazny sposób

ID: 2 OD: j*******@tlen.pl Data: Wed, 29 Aug 2007 10:52:47 -0000 Temat: 1K12:52 testowa wiadomosc nbdfgbgfbdfnng Rozmiar: 280
ID: 1 OD: =?UTF-8?Q?Jarek?= Data: Wed, 29 Aug 2007 12:51:34 +0200 Temat: =?UTF-8?Q?testowa_wiadomosc?= Rozmiar: 745


Czy jest jakaś możlwiość przerobienia tego by wyświetlało mi w sposób:

ID Od Temat Rozmiar Data


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
seaquest
post
Post #13





Grupa: Przyjaciele php.pl
Postów: 790
Pomógł: 7
Dołączył: 6.02.2003
Skąd: Polska

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


Wygląda na to że albo IMAP nie potrafi sobie poradzić z RFC albo masz maile niepoprawnie sporządzone.

A próbowałeś jakiejś klasy z PHP Classes?


--------------------
Michał Płachta
Warsztat: Mac OS X Leopard, PostgreSQL, Text Mate, Retrospectiva + SVN
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 09:03