Dzielenie stringu


(Jarek21 1992) #1

witam,

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

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

bardzo proszę o pomoc bo jest mi to bardzo potrzebne

pozdrawiam


(Kutar 0) #2
$dane=explode(' ',$string);

$dane[1]=substr($dane[1],2);

$dane[3]=substr($dane[3],2);

$dane[5]=substr($dane[5],1);

$dane[1] - data

$dane[2] - mail

$dane[3] - godzina

$dane[5] - liczba


(Jarek21 1992) #3

niestety nie działa nic się nie wyświetla


(Stalker) #4

Podaj adres strony :wink:


(Jarek21 1992) #5

nie mogę podać adresu bo tam są moje wiadomości mailowe.

Bo ja pobieram dane z serwera pop3 i one są w postaci tablicy, następnie pętlą for wyświetlam je tylko teraz chce je wyswietlić bardziej przyjaźniej. tzn żeby był temat osobno, data, i od kogo.

Więc może coś z preg_match() wiem, że to będzie to tylko nie wiem w jaki sposób mam to użyć.

Podaję kod mojego skryptu:

<?php

 $num = $_GET['num'];

 if(isset($num))

	 {

	  $link=imap_open("{pop3.advt.pl:110/pop3}INBOX", $login, $haslo);

	  $header=imap_header($link,$_GET['num']);

	  echo "Od: $header->fromadress
";

	  echo "Do: $header->toaddress
";

	  echo "Data: $header->Date
";

	  echo "Temat: $header->Subject

";

	  echo imap_body($link,$_GET['num'], $login, $haslo);

	 }

	 else

	 {

 $login = " ******";

 $haslo = " ********";

 $link=imap_open("{pop3. *********.pl:110/pop3}INBOX", $login, $haslo);

 echo imap_last_error();

 $headers=imap_headers($link);

 for($x=1; $x < count($headers); $x++) {

 $idx=($x-1);

 $dane=explode(' ',$headers[$idx]);

 $dane[1]=substr($dane[1],2);

 $dane[3]=substr($dane[3],2);

 $dane[5]=substr($dane[5],1);

 echo ''.$dane[5].'';

 if(!empty($headers[$idx]))

	 {

	 /*

	 $wiadomosc = 'Nowa wiadomośc zatytuowana: '.$headers[$idx].'.';

	 $adres_bramki = "http://smsowo.pl/sms/sendsms.php";

	 $c = curl_init();

	 curl_setopt($c, CURLOPT_URL, "$adres_bramki");

	 curl_setopt($c, CURL_POST, 1);

	 curl_setopt($c, CURLOPT_POSTFIELDS, "numer= ********* &text=$wiadomosc&podpis=Poczta");                                                          

   	 curl_exec($c);

	 curl_close($c); 

	 */

	 }

 }

 }

 ?>[/code]

(Kutar 0) #6

A samo $headers[$idx] coś wyświetla?


(Jarek21 1992) #7

to co podałem na samym początku


(Kutar 0) #8

Bezpośrednio po:

$dane=explode(' ',$headers[$idx]);

daj:

echo '

';

print_r($dane);

die('

');[/code]

i napisz co wyświetliło


(Jarek21 1992) #9
Array

(

    [0] => N

    [1] => 

    [2] => 

    [3] => 

    [4] => 

    [5] => 

    [6] => 

    [7] => 

    [8] => 1)28-Aug-2007

    [9] => =?iso-8859-2?Q?Advt.

    [10] => test

    [11] => (1746

    [12] => chars)

)

(Kutar 0) #10

A no właśnie :stuck_out_tongue: Czyli na przykład ósmy element tablicy przechowuje datę. Widocznie nie dałeś wszystkiego co jest w tych nagłówkach, dlatego inne elementu tablicy zawierają dane.

Aby teraz uzyskać te informacje, pobierz te elementy tablicy, które są Ci potrzebne. A jeśli (tak jak w dacie) na początku sa jakieś niepotrzebe znaki, to usuń je wykorzystując mój powyższy przykład :slight_smile: