Avatar billede spm Nybegynder
02. marts 2007 - 12:30 Der er 10 kommentarer og
1 løsning

opdele ud fra bestemte krav.

Hej.
Jeg har lavet et lille script som viser hvormange mails jeg har liggende i min queue.
<?
$command = "sudo $qmhandle -l";
exec($command, $queue);
echo queue[0];
.....

?>
resultater bliver så:

15861284 (203, L)
Return-path: anonymous@michaelsenonline.dk
From: anonymous@michaelsenonline.dk
To: 123@michaelsenonline.dk
Subject: Oprettelse
Date: 2 Mar 2007 12:28:46 +0100
Size: 417 bytes

15861465 (173, L)
Return-path: test@michaelsenonline.dk
From: "test"
To: <123@michaelsenonline.dk>
Subject: f
Date: Fri, 2 Mar 2007 11:37:43 +0100
Size: 3145916 bytes

Messages in local queue: 2
Messages in remote queue: 0

Hver mail som ligger i queuen bruger 7 linjer og jeg kunne godt tænke mig at få det splittet op således at:
queue-final[0] viser den første mail i køen
queue-final[1] viser den anden mail i køen og så frem deles.

Derefter skal jeg ind og have fat i den første linje fra queue-final
f.eks den første linje i queue-final[0] ser sådan ud: 15861284 (203, L)
og her skal jeg så have det lavet sådan at 15861284 kommer til at så for sig selv i f.eks. queue-final-number[0] osv.
kan i følge mig??

Jeg kan lige så godt indrømme at preg_match -replace mv kan jeg ik finde ud af at bruge - da jeg ikke kan stille div. kritiere op -  og det er jo lidt det som skal bruges her..
nogen bud????
Avatar billede jakobdo Ekspert
02. marts 2007 - 20:08 #1
DU kan bruge denne til at fange mange af tingene med:

if(preg_match_all('/(\\d+)\\s\\(\\d{3},\\sL\\)\\r\\nReturn-path:\\s(.+)\\r\\nFrom:\\s(.+)\\r\\nTo:\\s(.+)\\r\\nSubject:\\s(.+)\\r\\nDate:\\s(.+)\\r\\nSize:\\s(\\d+)\\sbytes/', $queue[0], $matches))
{
echo '<pre>';
print_r($matches);
echo '</pre>';
}
Avatar billede spm Nybegynder
02. marts 2007 - 20:24 #2
Den vil ikke rigtig.
Det er jo sådan at queue er et array.
sådan så queue[0] giver denne linje: 15861284 (203, L)
queue[1] giver denne: Return-path: anonymous@michaelsenonline.dk
queue[2] giver denne: From: anonymous@michaelsenonline.dk

den linje som du skriver, den giver intet resultat :(
Avatar billede jakobdo Ekspert
02. marts 2007 - 20:45 #3
Jeg troede at der var tale om en tekst streng! :o(

Så kan du dele min regexp op i flere små dele.
Eller også indlæse hele array'et over i en streng. F.eks. via implode('',$queue);
Avatar billede spm Nybegynder
02. marts 2007 - 21:14 #4
hehe ;)
nu har jeg lavet det så det ser sådan ud:
$command = "sudo $qmhandle -l";
exec($command, $queue);
$queue = implode('',$queue);
if(preg_match_all('/(\\d+)\\s\\(\\d{3},\\sL\\)\\r\\nReturn-path:\\s(.+)\\r\\nFrom:\\s(.+)\\r\\nTo:\\s(.+)\\r\\nSubject:\\s(.+)\\r\\nDate:\\s(.+)\\r\\nSize:\\s(\\d+)\\sbytes/', $queue, $matches))
{
echo '<pre>';
print_r($matches);
echo '</pre>';


men den viser slet intet :-(
Avatar billede schaefner Juniormester
02. marts 2007 - 21:26 #5
Hvordan vil du helt præcist have det endelig array til at se ud?
Avatar billede spm Nybegynder
03. marts 2007 - 18:06 #6
Det skal være sådan at array1 ser sådan ud:
15861284 (203, L)
Return-path: anonymous@michaelsenonline.dk
From: anonymous@michaelsenonline.dk
To: 123@michaelsenonline.dk
Subject: Oprettelse
Date: 2 Mar 2007 12:28:46 +0100
Size: 417 bytes

mens array 2 skal se ud sådanne:
15861465 (173, L)
Return-path: test@michaelsenonline.dk
From: "test"
To: <123@michaelsenonline.dk>
Subject: f
Date: Fri, 2 Mar 2007 11:37:43 +0100
Size: 3145916 bytes

og så frem deles.
Altså at hver mail i køen får sit eget array
Avatar billede jakobdo Ekspert
03. marts 2007 - 18:43 #7
Kunne du ikke prøve at lave følgende side til at starte med:

<?
$command = "sudo $qmhandle -l";
exec($command, $queue);
echo '<pre>';
print_r($queue);
echo '</pre>';

?>
Avatar billede spm Nybegynder
04. marts 2007 - 17:40 #8
Så har jeg mere eller mindre fået det til at køre. Måske på en lidt bøvlet og uoverskuelig måde, men har fået det til at virke.
Jeg fandt en anden måde at frem tvinge informationerne på, og efter at have læst en del om regxp fik jeg det nogen lunde til at køre. Jeg fik hvertfal meddelsesnummeret pillet ud - hvilket et eller andet sted var alpha omega.
hvis nogen ønsker nogle points for indsats - så smid et svar
Avatar billede jakobdo Ekspert
04. marts 2007 - 17:58 #9
Jeg vil stadig gerne prøve at lave en bedre regexp til dig, men jeg skal vide hvordan du har dine data i dag.
Og vil altid gerne have point...
Avatar billede spm Nybegynder
24. marts 2007 - 13:42 #10
;)
du behøver skam ikke ligge mere i det.
Jeg satte mig ned og startede med at læse omkring regxp.. Det er jo slet ik så bølvet som jeg troede.
Avatar billede jakobdo Ekspert
25. marts 2007 - 11:23 #11
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester